Postgresql 计算所有出行中所有用户的中位数

Postgresql 计算所有出行中所有用户的中位数,postgresql,statistics,aggregate-functions,Postgresql,Statistics,Aggregate Functions,我的手被GPS轨迹数据弄脏了。该数据集包括用户出行的GPS点序列,直到行程长度: SELECT * FROM gps_track; +---------+------------------+------------------+ | user_id | lat | lon | +---------+------------------+------------------+ | 1 | 39.984702 | 116

我的手被GPS轨迹数据弄脏了。该数据集包括用户出行的GPS点序列,直到行程长度:

SELECT * FROM gps_track;
+---------+------------------+------------------+
| user_id |       lat        |       lon        |
+---------+------------------+------------------+
| 1       | 39.984702        | 116.318417       |
| 1       | 39.984683        | 116.31845        |
| 1       | 39.984611        | 116.318026       |
| .       | .                | .                |
| 2       | 26.162202        | 119.943787       |
| 2       | 26.161528        | 119.943234       |
| 2       | 26.1619          | 119.943228       |
| .       | .                | .                |
| 3       | 22.8143366666667 | 108.332281666667 |
| 3       | 22.81429         | 108.332256666667 |
| 3       | 22.81432         | 108.332258333333 |
| .       | .                | .                |
| 4       | 32.9239666666667 | 117.386683333333 |
| 4       | 32.9235166666667 | 117.386616666667 |
| 4       | 32.9232833333333 | 117.386683333333 |
| .       | .                | .                |
+---------+------------------+------------------+
我可以得到每个用户的GPS点计数_id1,2,3,。。等等

那么,如何获得所有行程中GPS点数的中位数?不是每个用户的中间点。以下是我的数据集中的采样点的示例。

可能:

SELECT percentile_disc(0.5) WITHIN GROUP (ORDER BY lat_count)
FROM (SELECT user_id
    , COUNT(lat) AS lat_count
FROM gps_track
GROUP BY user_id) du;
另见
SELECT percentile_disc(0.5) WITHIN GROUP (ORDER BY lat_count)
FROM (SELECT user_id
    , COUNT(lat) AS lat_count
FROM gps_track
GROUP BY user_id) du;