SQL COUNT и его маленькие хитрости

Вот небольшой trick с оператором COUNT в sql.
Как мы знаем оператор COUNT может иметь следующие аргументы

  • ALL – Применяет статистическую функцию ко всем значениям. ALL применяется по умолчанию.
  • DISTINCT – Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL.
  • expression – Выражение любого типа, за исключением text, image или ntext. Статистические функции и вложенные запросы запрещены.

Также в манах можно найти следующее:

  • Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.
  • Функция COUNT(ALL expression) оценивает expression для каждой строки в группе и возвращает количество значений, не равных NULL.
  • Функция COUNT(DISTINCT expression) оценивает expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL.
  • Для возвращаемых значений, больших 2^31-1, функция COUNT формирует сообщение об ошибке. Вместо этого следует использовать COUNT_BIG.

Но стоит учесть, что COUNT понимает либо значение, либо NULL
Итак фишка в выражениях.

Пользуйтесь на здоровье.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.