MySQL. В чем разница между SUM и COUNT?

Вопрос:В MySQL - В чем разница между использованием SUM или COUNT? SELECT SUM(USER_NAME = 'JoeBlow') SELECT COUNT(USER_NAME = 'JoeBlow') Лучший ответ: Это большая разница, потому что результат не тот же. Первый запрос возвращает количество раз, когда условие истинно, поскольку true - 1 и false - 0. Второй запрос возвращает полный счетчик записей, потому что count()

Вопрос:

В MySQL – В чем разница между использованием SUM или COUNT?

SELECT SUM(USER_NAME = ‘JoeBlow’) SELECT COUNT(USER_NAME = ‘JoeBlow’) Лучший ответ:

Это большая разница, потому что результат не тот же.

Первый запрос возвращает количество раз, когда условие истинно, поскольку true – 1 и false – 0.

Второй запрос возвращает полный счетчик записей, потому что count() не заботится о содержимом внутри него, пока контент не равен NULL. Поскольку count(1) и count(0) остаются значениями, и оба подсчитываются.

Чтобы получить правильное возвращаемое значение для второго запроса, вам нужно будет сделать результат условия null (вместо 0), чтобы не подсчитываться. Вот так:

SELECT COUNT(case when USER_NAME = ‘JoeBlow’ then ‘no matter what’ else NULL end) from your_table

Или просто удалите часть else из инструкции case, которая автоматически сделает else часть null.

Ответ №1

Чтобы ответить на вопрос OP более прямой и буквенный, рассмотрите, были ли вы суммировать целые числа в столбце вместо строк.

+—-+——+ | id | vote | +—-+——+ | 1 | 1 | | 2 | -1 | | 3 | 1 | | 4 | -1 | | 5 | 1 | +—-+——+

COUNT = 5 голосов

SUM = 1 голос
(-2 + 3 = 1)

Сумма выполняет математическую сумму, тогда как count просто подсчитывает любое значение как 1 независимо от того, какой тип данных.

Оцените статью
Добавить комментарий