Выделение всех строк, в которых один атрибут различен ровно два раза.(Баз данных) - PullRequest
0 голосов
/ 03 октября 2018

Скажем, у нас есть таблица 'colors'

id    colour
1     'Blue'
2     'Red'
2     'Red'
3     'Blue'
3     'Red'
4     'Blue'
4     'Red'
4     'Blue'
4     'Yellow'
5     'Blue'
5     'Yellow'

Запрос должен вернуть идентификаторы 3 и 5, поскольку они имеют ровно два разных цвета.Цвета не могут быть одинаковыми, и количество разных цветов должно быть ровно 2.

Я пробовал это:

SELECT id FROM colours WHERE COUNT(DISTINCT colour) = 2;

, но это, к сожалению, дало ошибку.

1 Ответ

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

Вы рядом:

SELECT id
FROM colours
GROUP BY id
HAVING COUNT(DISTINCT colour) = 2;
...