Как посчитать количество нулей в sql? - PullRequest
1 голос
/ 15 марта 2012

У меня есть столбец со значением, равным 0 или 1. Как мне подсчитать число нулей?

    SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) >=
ALL (SELECT SUM(AA.zeroorone)
    FROM table1 AA
    GROUP BY AA.id)

Я знаю, что это подсчитывает количество единиц.Кажется, я не понимаю

Любая помощь очень ценится

Ответы [ 4 ]

4 голосов
/ 15 марта 2012

Используя количество ...

SELECT COUNT(*) FROM table1 
WHERE zeroone=0
4 голосов
/ 15 марта 2012

Оператор CASE будет хорошо работать:

SELECT SUM(CASE WHEN zeroorone = 0 
                THEN 1 
                ELSE 0 END) AS TOTAL_ZEROS
  FROM table1 
1 голос
/ 15 марта 2012

Если вам нужно просто подсчитать нули в таблице, используйте это:

SELECT COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0

Если вы хотите рассчитать число для идентификатора, используйте это.

SELECT id, COUNT(1) AS COUNT_OF_ZEROES
FROM table1
WHERE zeroone = 0
GROUP BY id
0 голосов
/ 15 марта 2012

Я знаю, что это количество единиц

Ты уверен? Мне кажется, что он возвращает id с, где его счетчик единиц больше или равен его счету нулей.

Если вы удовлетворены тем, что запрос выполняет то, что вы хотите, но хотите изменить эффект - например, вернуть id s, где его счетчик нулей больше или равен его счету единиц - тогда просто измените оператор сравнения:

SELECT A.id
FROM table1 A
GROUP BY A.id
HAVING SUM(A.zeroorone) <=  -- changed from >=
ALL (SELECT SUM(AA.zeroorone)
    FROM table1 AA
    GROUP BY AA.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...