Исходный код вики Группировка с условием на всю группу | GROUP BY HAVING
Версия 3.12 от Alexandr Fokin на 2023/12/16 14:01
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{code language="sql"}} | ||
| 2 | |||
| 3 | SELECT | ||
| 4 | person_id | ||
| 5 | FROM MyTable | ||
| 6 | GROUP BY person_id | ||
| 7 | HAVING 3 = ( | ||
| 8 | MAX(CASE pet WHEN 'dog' THEN 1 ELSE 0 END) | ||
| 9 | + MAX(CASE pet WHEN 'cat' THEN 1 ELSE 0 END) | ||
| 10 | + MAX(CASE pet WHEN 'tiger ' THEN 1 ELSE 0 END) | ||
| 11 | ) | ||
| 12 | |||
| 13 | {{/code}} | ||
| 14 | |||
| 15 | ---- | ||
| 16 | |||
| 17 | С помощью CASE-WHEN и MAX можно выбрать только те группы, в которых есть указанное значение(я). (Хотя бы один раз) | ||
| 18 | |||
| 19 | Group by having at least one of each item | ||
| 20 | https://stackoverflow.com/questions/32122777/group-by-having-at-least-one-of-each-item |