SQL-запрос, чтобы найти конкретное значение для всех записей - PullRequest
0 голосов
/ 23 мая 2018
Col1;Col2;Col3
12345;01;Y
12345;02;Y
12345;03;Y
22222;01;Y
22222;02;Y
22222;03;N
33333;01;N
44444;01;Y

Нужна помощь в написании SQL-запроса для поиска всех записей со значением = 'Y' на основе col1. Для вывода, например, выберите Col1, должен выдать выходные данные как 12345 и 44444 [не 22222 и 33333, поскольку col3 содержит'N' для них]

Большое спасибо за ваше время

Ответы [ 4 ]

0 голосов
/ 23 мая 2018

мое решение, использующее разницу

select distinct col1 from demo where col1 not in 
(select col1 from demo where col3='N')
0 голосов
/ 23 мая 2018

В одном простом подходе используется условное агрегирование:

SELECT Col1
FROM yourTable
GROUP BY Col1
HAVING MAX(Col3) = MIN(Col3) AND MAX(Col3) = 'Y';
0 голосов
/ 23 мая 2018

Мое решение:

select distinct col1
from mytable
where col3='Y'
and col1 not in (select distinct col1 from mytable where col3='N')
0 голосов
/ 23 мая 2018

Полагаю, вам нужно col1, где все значения col3 должны быть Y

select col1
from demo
group by col1
having count(*) = sum(Col3 = 'Y')

Демо

Или если может быть только 2 возможных значения дляcol3 как Y/N, тогда вы можете упростить ваше предложение having как

having sum(Col3 = 'N') = 0

Демо

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