Как применить фильтр к каждой строке после группы в SQL
У меня есть таблица - Таблица = emp
eno ename designation sal mgr deptno
1 aaa salesman 7000 2 10
2 bbb manager 17000 3 10
3 ccc president 40000 null 30
4 ddd clerk 5000 5 20
5 eee manager 20000 3 20
Q) Сколько человек за работу зарабатывает более 10000?
я хочу результат -
designation count(*)
salesman 0
manager 2
clerk 0
president 1
query-
SELECT designation, count(*) FROM emp WHERE sal>10000 GROUP BY designation;
получить результат-
designation count(*)
manager 2
president 1
Подскажите пожалуйста, как применить фильтр к каждой строке после предложения group by?
2 ответа
SELECT designation, sum(case when sal > 10000 then 1 else 0 end) as count
FROM emp
GROUP BY designation;
Используйте функции SUM AND GROUP BY:
SELECT designation, SUM(CASE WHEN sal > 10000 THEN 1 ELSE 0 END) AS count
FROM Your_table
GROUP BY designation;