gpt4 book ai didi

sql - 使用 SQL 按组和排名识别结果

转载 作者:行者123 更新时间:2023-11-29 11:26:22 25 4
gpt4 key购买 nike

我有一个具有以下结构的表:

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 的区域,按 timestamp 排序。例如,如果我想要第一个 area 值,它将如下所示:

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 的后续面积值。

最佳答案

语法应该如下:

SELECT RANK() OVER(PARTITION BY a.id ORDER BY a.timestamp) AS rnk

关于sql - 使用 SQL 按组和排名识别结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com