| USERID | TIME | GPS |
| ------------- | ------------- |
| 用户 A | sometime | (x,y) |
| 用户 A | sometime | (x,y) |
| 用户 A | sometime | (x,y) |
| 用户 A | sometime | (x,y) |
| 用户 A | sometime | (x,y) |
| 用户 B | sometime | (x,y) |
| 用户 B | sometime | (x,y) |
| 用户 B | sometime | (x,y) |
| 用户 C | sometime | (x,y) |
| 用户 C | sometime | (x,y) |
| 用户 D | sometime | (x,y) |
| 用户 D | sometime | (x,y) |
| USERID | TIME_1 | TIME_2 | FARTHEST | USER_DATA_COUNT |
| ------------- | ------------- |------------- |------------- |------------- |
| 用户 D | 用户 D 最远的两个点点 1 的时间 | 用户 D 最远的两个点点 2 的时间 | 3900 | 2 |
| 用户 A | 用户 A 最远的两个点点 1 的时间 | 用户 A 最远的两个点点 2 的时间 | 3200 | 5 |
| 用户 C | 用户 C 最远的两个点点 1 的时间 | 用户 C 最远的两个点点 2 的时间 | 1900 | 2 |
| 用户 B | 用户 B 最远的两个点点 1 的时间 | 用户 B 最远的两个点点 2 的时间 | 1400 | 3 |
我想拿出每一个用户距离自己的最远距离
FARTHEST:假设 dist((x1,y1), (x2,y2)) 即可得出距离
USER_DATA_COUNT:当前用户的数据数量
最终根据 FARTHEST 个人迁徙最远距离由高到低排序
全部用户 ID:SELECT USERID from POINTS group by USERID
个人数据量:SELECT USERID, count(*) from POINTS group by USERID
-- 这个是错的,得不到想要的结果,所以来这里问大家
SELECT
POINTS1.USERID,
POINTS1.TIME AS time_1,
POINTS2.TIME AS time_2,
dist(POINTS1.GPS, POINTS2.GPS)
FROM
POINTS POINTS1,
POINTS POINTS2
WHERE
POINTS1.USERID = POINTS2.USERID
ORDER BY
dist(POINTS1.GPS, POINTS2.GPS) DESC
项目用到了 PostgreSQL 的 PostGIS 这个扩展,具有此地理距离计算能力
1
Jolly23 OP |