gpt4 book ai didi

sql - 确定每个用户当天的第一个事件

转载 作者:行者123 更新时间:2023-12-04 10:26:11 26 4
gpt4 key购买 nike

我有一个表“UserData”,其中包含以下信息:

User    Date    DateTime        Input
1 8/4/2019 8/4/2019 0:55 Request
1 8/4/2019 8/4/2019 0:56 Ticket
1 8/4/2019 8/4/2019 2:08 Submit
1 8/4/2019 8/4/2019 2:21 Submit
2 8/4/2019 8/4/2019 13:10 Submit
2 8/20/2019 8/20/2019 2:10 Ticket
2 8/20/2019 8/20/2019 2:12 Ticket
2 8/20/2019 8/20/2019 2:13 Request
3 8/20/2019 8/20/2019 2:15 Request
3 8/19/2019 8/19/2019 2:16 Ticket
3 6/12/2020 6/12/2020 2:22 Submit
3 6/12/2020 6/12/2020 2:26 Submit
3 6/12/2020 6/12/2020 3:26 Ticket

我希望返回每个用户的第一个输入(基于时间),但仅限于最新的一天。所以我的输出将是这样的:
User    DateTime    Input
1 8/4/2019 0:55 Request
2 8/20/2019 2:10 Ticket
3 6/12/2020 2:22 Submit

我想我需要为每个日期分配一个排名,但不确定从哪里开始。

最佳答案

row_number()窗口函数:

select t."User", t."Date", t."DateTime", t."Input"
from (
select *, row_number() over (partition by "User" order by "Date" desc, "DateTime") rn
from UserData
) t
where t.rn = 1

对于每个用户,该行按 "Date" 排序降序查找最新日期,然后按 "DateTime"升序以获得当天的第一个输入。
demo .
结果:
| User | Date       | DateTime         | Input   |
| ---- | ---------- | ---------------- | ------- |
| 1 | 2019-08-04 | 2019-08-04 00:55 | Request |
| 2 | 2019-08-20 | 2019-08-20 02:10 | Ticket |
| 3 | 2020-06-12 | 2020-06-12 02:22 | Submit |

关于sql - 确定每个用户当天的第一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60625963/

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