【发布时间】:2021-09-09 15:09:14
【问题描述】:
我有一个表,其中包含如下所示的对象的共现计数:
col1 col2 count
item1 item2 3
item3 item2 1
item1 item4 1
item2 item3 2
我想在 col1 上按最大的前 n 个计数进行分组,但是如果我在上表中这样做,因为所有对象对都不可用,结果将如下:(这是不正确的)
col1 col2 count
item1 item2 3
item3 item2 1
item2 item3 2
如果我交换列然后将它们添加回同一个表,这将是结果:
col1 col2 count
item1 item2 3
item3 item2 1
item1 item4 1
item2 item3 2
item2 item1 3
item2 item3 1
item4 item1 1
item3 item2 2
并且 group by 会产生:(正确的结果)
col1 col2 count
item1 item2 3
item2 item1 3
item4 item1 1
item3 item2 2
产生这种分组依据的正确查询是什么?我是否正确地认为该列需要交换和连接,或者是否有更好的方法来解决这个问题? (我正在使用 Postgres)
在上面我按前 1 显示分组,为了保持示例简单,实际上这是按前 10 分组
【问题讨论】:
标签: sql database postgresql group-by