количество user_id
partner_id |type|user_id
3 | 6 | 123
3 | 2 | 123
3 | 2 | 122
2 | 5 | 124
В текущий запрос осталось добавить количество не уникальных user_id и сам user_id:
select
--id партнера
partners.id,
--Кол-во type2
sum(case when operations.type = 2 then 1 else 0 end) as type2,
--Ко-во type6
sum(case when operations.type = 6 then 1 else 0 end) as type6,
-- Max кол-во user_id
from partners
group by partner_id
Как это лучше сделать?
Ожидаемый вывод для partner_id 3:
[3,2,1,2 (максимум одинаковых user_id),123(сам user_id который встречается максимальное количество раз)]
А зачем Вы используете эти громоздкие CASE, когда в PostgreSQL есть FILTER? > количество не уникальных user_id Для этого хватит COUNT(DISTINCT ...), на первый взгляд. > сам user_id который встречается максимальное количество раз А для этого уже придётся (ну или лучше) существенно модифицировать сам запрос, мне кажется (но я особо не думал, если что).
Обсуждают сегодня