我正在尝试实现以下目标,但到目前为止还无法实现,我们将不胜感激。我有这些数据(按 id、锚点、日期和时间从查询中排序),我希望按公共锚点分组:
id anchor date time 'group' (the value to get)
3 2 2019-01-01 07:00 1
4 2 2019-01-01 08:00 1
5 3 2019-01-01 15:00 2
7 3 2019-01-01 16:00 2
10 3 2019-01-01 17:00 2
我正在寻找在 postgres 中进行查询,我可以在其中选择此数据并 foreach 一组公共锚点,有一个“组号”然后我需要一个查询来对同一组的点的锚点求和,上面的示例将变为:
anchor sum group
2 4 1
3 9 2
谢谢!
编辑: McNets 解决方案完美,我有另一个案例,数据如下。锚重复但在锚更改后:它们按时间排序,首先是锚 2,然后是锚 3,然后是锚 2。我需要在更改后进行分组(ID 11 和 12)有一个新组在这种情况下的数字
id anchor date time 'group' (the value to get)
3 2 2019-01-01 07:00 1
4 2 2019-01-01 08:00 1
5 3 2019-01-01 15:00 2
7 3 2019-01-01 16:00 2
10 3 2019-01-01 17:00 2
11 2 2019-01-01 18:00 3
12 2 2019-01-01 19:00 3
使用DENSE_RANK函数:
db<>在这里摆弄
这里有更多关于 DENSE_RANK 的例子。
即使在发生重大变化时最好添加一个新问题,这也是您编辑的问题的答案。
db<>在这里摆弄