запрос с группировкой и счет в postgresql - PullRequest
0 голосов
/ 06 сентября 2018

Мой запрос:

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

Я бы хотел извлечь только "POSIZIONE" с другим "TRANSAZIONE".В приведенных выше данных только "POSIZIONE" 265 имеет два "TRANSAZIONE".Я хотел бы извлечь только 265 "POSIZIONE".

1 Ответ

0 голосов
/ 06 сентября 2018

Я не уверен в значении вашего вопроса. Либо вам нужно просто добавить 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

...