SQL запросы - Группировка с условием на всю группу | GROUP BY HAVING 

Page / - Изменено Alexandr Fokin в 2023/12/16 14:12 

Группировка с условием на всю группу | GROUP BY HAVING 
Изменено Alexandr Fokin
в 2023/12/16 14:12

Оглавление

SELECT
    person_id
FROM MyTable
GROUP BY person_id
HAVING 3 = (
   MAX(CASE pet WHEN 'dog' THEN 1 ELSE 0 END)
+   MAX(CASE pet WHEN 'cat' THEN 1 ELSE 0 END)
+   MAX(CASE pet WHEN 'tiger ' THEN 1 ELSE 0 END)
)

С помощью CASE-WHEN и MAX можно выбрать только те группы, в которых есть указанное значение(я). (Хотя бы один раз)
Group by having at least one of each item
https://stackoverflow.com/questions/32122777/group-by-having-at-least-one-of-each-item