COUNT
- результат агрегации.Вы можете сосчитать все строки в таблице, все строки, которые соответствуют определенным критериям и т. Д. В качестве результата агрегирования вы можете использовать его в предложении SELECT
, в предложении HAVING
и в предложении ORDER BY
.(Вы не можете использовать его в предложении WHERE
, потому что предложение WHERE
имеет дело с данными в строках таблицы. Вместо этого вам нужно предложение HAVING
, которое касается результатов агрегации.)
Пример предложения SELECT / ORDER BY
select
supplier_id,
case when count(*) < 20 then 'less then 20 orders'
when count(*) < 40 then 'less beteen 20 and 40 orders'
else '40 or more orders'
end as number_of_orders
from orders
where order_date >= date '2018-01-01'
group by supplier_id
order by count(*) desc;
Пример предложения HAVING
select sex, count(*)
from members
group by sex
having count(*) > 20;