我有一个表,我在其中记录了所有用户的位置,我需要从中获取所有用户的最新位置,并根据与提供的几何点的距离进行排序。
位置表
id | user_id | 位置时间 |
---|---|---|
1 | 1 | 点 | 时间戳
2 | 1 | 点时间戳 |
3 | 2 | 点 | 时间戳
4 | 2 | 点 | 时间戳
WITH cte AS ( SELECT source_table.*,
ROW_NUMBER() OVER (PARTITION BY source_table.user_id
ORDER BY source_table.time DESC) rn
FROM source_table )
SELECT cte.*
FROM cte
WHERE cte.rn = 1
ORDER BY ST_Distance(cte.location, @specified_point)