【问题标题】:query with group by and count in postgresql在 postgresql 中使用 group by 和 count 查询
【发布时间】:2023-03-11 13:33:01
【问题描述】:

我的查询:

select id_posizione as posizione, IDENTIFICATIVO_TRANSAZIONE as transazione, Count(IDENTIFICATIVO_TRANSAZIONE) as count_transazioni
from  GP_TRANSAZIONI
group by id_posizione, IDENTIFICATIVO_TRANSAZIONE order by id_posizione;

返回这个结果:

POSIZIONE       TRANSAZIONE                             COUNT_TRANSAZIONI
264             35afec5d-a71e-56f6-94d9-vf111b7f7f27    3
265             51afec5d-c71e-46f6-94d9-fb221b7f7e65    1
265             69b04d6d-ef58-417c-b070-2d2c2da778ff    2
266             51afec5d-c71e-46f6-94d9-fb221b7f7e66    3
267             98c6fa08-7c85-49e6-9c1e-52bdd80c6bb2    7
268             146f9355-13f1-4fb2-a2e6-b55588e312fd    4
269             3a85ff57-54bf-4b0d-b2fd-3f69aa239467    3
270             03899fe7-607b-457f-bcfb-570c1511b33a    4
271             47ffb07b-b410-4591-ad89-f8b820ba0a85    2

我只想提取具有不同“TRANSAZIONE”的“POSIZIONE”。在上面的返回数据中,只有 "POSIZIONE" 265 有两个 "TRANSAZIONE" 。我只想提取 265 个“POSIZIONE”。

【问题讨论】:

  • POSIZIONE TRANSAZIONE COUNT 264 35afec5d-a71e-56f6-94d9-vf111b7f7f27 3 265 51afec5d-c71e-46f6-94d9-fb221b7f7e65 1 265 69b04d6d-ef58-417c-b070-2d2c2da778ff 2 266 51afec5d-c71e-46f6 -94d9-fb221b7f7e66 3 267 98c6fa08-7c85-49e6-9c1e-52bdd80c6bb2 7 268 146f9355-13f1-4fb2-a2e6-b55588e312fd 4 269 3a85ff57-54bf-4b0d-b2fd-3f69aa239467 3 270 03899fe7-607b-457f-bcfb-570c1511b33a 4 271 47ffb07b-b410-4591-ad89-f8b820ba0a85 2
  • 您可以添加 Where 子句并指定大于 1 的计数。

标签: postgresql-9.3


【解决方案1】:

我不确定您的问题的含义。 您需要简单地添加一个having 来过滤聚合列:

select id_posizione as posizione, IDENTIFICATIVO_TRANSAZIONE as transazione, Count(IDENTIFICATIVO_TRANSAZIONE) as count_transazioni
from  GP_TRANSAZIONI
group by id_posizione, IDENTIFICATIVO_TRANSAZIONE 
having Count(IDENTIFICATIVO_TRANSAZIONE)>1
order by id_posizione;

这将返回

264     35afec5d-a71e-56f6-94d9-vf111b7f7f27    3
265     69b04d6d-ef58-417c-b070-2d2c2da778ff    2
266     51afec5d-c71e-46f6-94d9-fb221b7f7e66    3
267     98c6fa08-7c85-49e6-9c1e-52bdd80c6bb2    7
268     146f9355-13f1-4fb2-a2e6-b55588e312fd    4
269     3a85ff57-54bf-4b0d-b2fd-3f69aa239467    3
270     03899fe7-607b-457f-bcfb-570c1511b33a    4
271     47ffb07b-b410-4591-ad89-f8b820ba0a85    2

或者您需要通过添加 count(distinct xxx)having 关键字来重构您的查询:

select id_posizione as posizione, Count(distinct IDENTIFICATIVO_TRANSAZIONE) as count_transazioni
from  GP_TRANSAZIONI
group by id_posizione 
having Count(distinct IDENTIFICATIVO_TRANSAZIONE)>1
order by id_posizione;

返回

265 2

【讨论】:

  • 谢谢。最后一个答案是我一直在寻找的
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多