Выбор отдельного числа в группе с только нулевыми значениями для определенного столбца - PullRequest
0 голосов
/ 01 октября 2018

У меня есть 2 таких столбца - id и val.

enter image description here

Мне требуются такие отличные идентификаторы, где для каждого идентификатора есть нулевое значениеподарок.Можно ли использовать «group by» по идентификатору, а затем использовать условие «has», где есть null?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Чтобы получить идентификаторы, которые имеют значение NULL, я бы хотел начать с этого:

select id
from t
group by id
having count(*) <> count(val);

Эта структура позволяет вам проверять другие значения, например, не NULLvalue.

Самый простой способ получить отличные идентификаторы со значениями NULL:

select distinct id
from t
where val is null;

Если вам нужен только счет:

select count(distinct id)
from t
where val is null;
0 голосов
/ 01 октября 2018

Я бы использовал NOT EXISTS:

SELECT COUNT(DISTINCT id)
FROM table t
WHERE NOT EXISTS (SELECT 1 FROM table t1 WHERE t1.id = t.id AND t1.val IS NOT NULL);

Другой вариант использует GROUP BY:

SELECT COUNT(id)
FROM table t
GROUP BY id
HAVING SUM(CASE WHEN val IS NOT NULL THEN 1 ELSE 0 END) = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...