Задать вопрос
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону

Зачем надо (1) в COUNT?

Нагуглил как посчитать кол-во строк в таблице {+}.

SQL запрос выглядит так:
SELECT COUNT(1) FROM название_таблицы

Вопрос: Зачем возле COUNT (1)?
  • Вопрос задан
  • 1260 просмотров
Подписаться 1 Средний 5 комментариев
Решения вопроса 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
В SQL, функция COUNT используется для подсчета количества строк, которые соответствуют определенному условию. Она может принимать различные аргументы, в том числе числовые значения, столбцы, выражения и т.д.

В данном случае, в качестве аргумента COUNT используется число 1. Однако, это значение не имеет никакого значения для подсчета количества строк в таблице. Оно выбрано скорее для упрощения запроса и ускорения его выполнения. Например, в некоторых базах данных, использование 1 вместо столбца имеет меньший размер и может ускорить выполнение запроса.

Поэтому, если вам нужно просто подсчитать количество строк в таблице, можно использовать любой аргумент внутри функции COUNT, в том числе и 1. Однако, в общем случае, для подсчета количества строк можно использовать и другие конструкции, например, COUNT(*) или COUNT(имя_столбца).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
С практической точки зрения - надо смотреть план исполнения запроса. Там будет указан тип сканирования и предикат как БД фильтрует строки. Если план для
SELECT (1)
не отличается от
SELECT (*)
то тогда можно считать что это - одно и тоже.

Почему обсуждение теоретического SQL я считаю здесь вредным и бесполезным? Потому что ни я ни
кто либо из присуствтующих стандарт SQL не читал. Это - закрытый и платный документ. И
обычно нам достается не текст стандарта а текст самой реализации на Oracle/PG/MySQL.
Вот и говорим о реализации а не о стандарте. А реализации бывают разные. В оракле например
требуется фейковая табличка dual для пустых безтабличных запросов. В других dbms
- фейковая табличка не нужна. Синтаксис другой.

Если кто-либо из присуствующих читал стандарт SQL и знает как объявлено поведение count() - то прошу
привести хотя-бы цитату.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы