我有一个具有以下结构的表格:
id timestamp area
717416915 18:30:53.063 25.691601
717416915 18:31:34.863 31.200506
717416915 18:32:23.665 25.690088
1994018321 18:32:45.467 37.409171
1994018321 18:33:19.612 37.409171
424164505 18:36:16.634 18.22091
424164505 18:36:36.899 18.210754
424164505 18:37:08.614 19.829266
2394018356 18:37:27.231 79.31705
我想要做的是总结这些值,以便我可以按
时间戳
排序并确定每个id
对应的面积
。例如,如果我想要第一个面积
值,它将是以下内容:id timestamp area_1
717416915 18:30:53.063 25.691601
1994018321 18:32:45.467 37.409171
424164505 18:36:16.634 18.22091
2394018356 18:37:27.231 79.31705
如果我想要获取每个id
的第二个area
值,那么应该这样做:
id timestamp area_2
717416915 18:31:34.863 31.200506
1994018321 18:33:19.612 37.409171
424164505 18:36:36.899 18.210754
我知道需要按时间排序,然后识别每个
id
的第一个值。但我不太明白如何做到这一点。我尝试了以下方法(还不能运行,因为我还不太清楚如何使用OVER
函数)。WITH T AS (
SELECT * OVER(PARTITION BY a.id ORDER BY a.timestamp) AS rnk
FROM mytable AS a
)
SELECT area as area_1
FROM T
WHERE rnk = 1
GROUP BY a.id
ORDER BY a.timestamp;
我打算使用
rnk=2
等方式,以便获取每个id
的后续区域值。
id=2394018356
。 - wildplasser