подсчет нулевых данных в MySQL - PullRequest
       36

подсчет нулевых данных в MySQL

0 голосов
/ 28 сентября 2010

скажем, у меня есть одна таблица, в которой есть такие данные, как:

name       status
bob        single
bob        single
jane       null
tina       null
shane      married

Я хочу, если статус "одиночный или данные нулевые", это означает, что одиночныйтак что если данные пустые, скрипт может прочитать их как один и посчитать вместе.так что я могу показать результат как:

Single     Married
3            1

Я пытался с этим, и он не работает:

SELECT SUM(IF(status='single',1,0)) AS Single,
       SUM(IF(status='married',1,0)) AS Married
FROM table

Ответы [ 3 ]

1 голос
/ 28 сентября 2010

Использование:

SELECT SUM(CASE WHEN x.status = 'single' OR x.status IS NULL THEN 1 ELSE 0 END) AS single,
       SUM(CASE WHEN x.status = 'married' THEN 1 ELSE 0 END) AS married
  FROM (SELECT DISTINCT
               t.name,
               t.status
          FROM YOUR_TABLE t) x
0 голосов
/ 28 сентября 2010
SELECT SUM(IF(status='single' OR status IS NULL,1,0)) AS Single,
       SUM(IF(status='married',1,0)) AS Married
FROM table
0 голосов
/ 28 сентября 2010

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

SELECT SUM(IF(status!='married',1,0)) AS Single,
       SUM(IF(status='married',1,0)) AS Married
FROM table

В противном случае попробуйте

SELECT SUM(IF(status='single' OR status is null,1,0)) AS Single,
       SUM(IF(status='married',1,0)) AS Married
FROM table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...