Как подсчитать значения NULL в MySQL?

Я хочу знать, как я могу найти все значения, которые являются NULL в базе данных MySQL, например, я пытаюсь отобразить всех пользователей, у которых пока нет среднего.

Вот код MySQL.

SELECT COUNT(average) as num
FROM users
WHERE user_id = '$user_id'
AND average IS_NULL

Ответы

Ответ 1

SELECT
    COUNT(*) as num
FROM
    users
WHERE
    user_id = '$user_id' AND
    average IS NULL

Ответ 2

Более общая версия (которая не зависит от предложения where и, следовательно, ограничивает ваши общие результаты):

SELECT 
    SUM(CASE WHEN average IS NULL THEN 1 ELSE 0 END) As null_num, 
    SUM(CASE WHEN average IS NOT NULL THEN 1 ELSE 0 END) AS not_null_num
FROM users

Это не лучше, чем конкретные запросы, представленные другими ответами здесь, но их можно использовать в ситуациях, когда использование ограничения, где предложение является нецелесообразным (из-за необходимости другой информации)...

Ответ 3

Кроме того, вы можете:

Select Count(*) - Count(Average) as NullAverages
From Users
Where user_id = '$user_id' 

Ответ 4

ты на правильном пути. Удалите "_" из "IS_NULL" и измените "COUNT (среднее значение)" на "COUNT (1)", и вы получите его.

Для получения дополнительной информации о работе с NULL в MYSQL см. http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html

И для работы с IS NULL специально см.

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_is-null

Ответ 5

Возможно, мне не хватает чего-то определенного mysql, но это будет работать на сервере sql

SELECT COUNT(*) as num
FROM users
WHERE user_id = '$user_id'
AND average IS NULL

Ответ 6

Немного поздно, но вы можете сделать это в MySQL 5.0.51:

SELECT COUNT(*) AS total, COUNT(field1) AS notNullFields1
FROM table
GROUP BY field5, field6

С уважением.