【发布时间】:2021-12-28 15:38:16
【问题描述】:
我有一个 PostgreSQL 数据集,其中包含员工姓名、入职 ID 和入职时间。根据员工打卡的次数,这些内容会在多行中重复。我要做的是对每个员工的连续条目进行分组并计算条目数。
输入
entry_id emp_name entry_time
100 John Doe 18/10/2021
101 Mark Foo 18/10/2021
102 Angie Genie 19/10/2021
103 Angie Genie 19/10/2021
104 Angie Genie 19/10/2021
105 John Doe 20/10/2021
106 John Doe 20/10/2021
107 Angie Genie 21/10/2021
108 Angie Genie 21/10/2021
109 Mark Foo 22/10/2021
110 Mark Foo 22/10/2021
111 Mark Foo 23/10/2021
112 Mark Foo 24/10/2021
期望的输出
emp_name last entry_time no of entries
John Doe 18/10/2021 1
Mark Foo 18/10/2021 1
Angie Genie 19/10/2021 3
John Doe 20/10/2021 2
Angie Genie 21/10/2021 2
Mark Foo 24/10/2021 4
我尝试使用间隙和孤岛方法将连续的 emp_names 分配到组中,以使我能够获得条目计数,但我无法这样做。我希望分配如下组,但到目前为止没有任何效果。
entry_id emp_name entry_time group no of entries
100 John Doe 18/10/2021 1 1
101 Mark Foo 18/10/2021 2 1
102 Angie Genie 19/10/2021 3 3
103 Angie Genie 19/10/2021 3 3
104 Angie Genie 19/10/2021 3 3
105 John Doe 20/10/2021 4 2
106 John Doe 20/10/2021 4 2
107 Angie Genie 21/10/2021 5 2
108 Angie Genie 21/10/2021 5 2
109 Mark Foo 22/10/2021 6 4
110 Mark Foo 22/10/2021 6 4
111 Mark Foo 23/10/2021 6 4
112 Mark Foo 24/10/2021 6 4
这在 PostgreSQl 中可行吗?任何帮助表示赞赏。 谢谢。
【问题讨论】:
标签: sql postgresql group-by max window-functions