PostgreSQL: функция COUNT
Функция COUNT возвращает количество строк, соответствующих определенному условию запроса. Следующее утверждение иллюстрирует различные способы использования функции COUNT.
SELECT COUNT(*) FROM table_name;
Функция COUNT (*) возвращает количество строк, возвращаемых оператором SELECT.
Когда вы применяете функцию COUNT (*) ко всей таблице, PostgreSQL должен сканировать всю таблицу последовательно. Если вы используете функцию COUNT(*) для большой таблицы, запрос будет медленным. Это связано с реализацией PostgreSQL MVCC. Поскольку несколько транзакций видят разные состояния данных одновременно, функция COUNT(*) не может напрямую рассчитывать всю таблицу, поэтому PostgreSQL должен сканировать все строки.
SELECT COUNT(column) FROM table_name;
Подобно функции COUNT(*), функция COUNT(column) возвращает количество строк, возвращаемых предложением SELECT. Однако он не учитывает значения NULL в столбце.
SELECT COUNT(DISTINCT column) FROM table;
В этой форме COUNT(DISTINCT column) возвращает количество отдельных строк, значения столбца которых не равны NULL.