Извлечь повторяющиеся значения с условием - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь написать запрос, чтобы найти дубликат, где значения столбца B отличаются.Мое требование заключается в том, что «мне нужно, чтобы значение COL A выводилось только в том случае, если в группе все значения в столбце B должны отличаться, и одно из значений в COL B должно быть ВНЕШНИМ»

Ниже приведены мои входные данные

enter image description here

Мой ожидаемый результат показан ниже выделенным синим цветом

enter image description here

В выходных данных, которые вы можете видеть, даже если значения в COL B различны для группы, у которой значение COLA равно 156, я не ожидаю, что в моих выходных данных нет внешних.

1 Ответ

0 голосов
/ 03 мая 2019

Вы можете использовать следующее решение, используя GROUP BY:

SELECT test.colA
FROM test INNER JOIN (
    SELECT colA, COUNT(DISTINCT colB) AS cntUnique, COUNT(colB) AS cntAll 
    FROM test
    GROUP BY colA
)t ON test.colA = t.colA
GROUP BY test.colA
HAVING SUM(CASE WHEN colB = 'EXTERNAL' THEN 1 ELSE 0 END) = 1 
    AND MAX(t.cntUnique) = MAX(t.cntAll)

демо на dbfiddle.uk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...