результат из конкретной группы в MySQL - PullRequest
0 голосов
/ 28 июня 2018
Suppose I have following information,
#PAN#       #Product#
AAAAAAAAAA  Product1
AAAAAAAAAA  Product2
AAAAAAAAAA  Product3
AAAAAAAAAA  **Product4**
AAAAAAAAAA  Product5
BBBBBBBBBB  Product1
BBBBBBBBBB  Product2
BBBBBBBBBB  Product3
BBBBBBBBBB  **Product4**
BBBBBBBBBB  Product5
CCCCCCCCCC  Product1
DDDDDDDDDD  Product2

Мне нужны только те PAN, в которых Product <> 'Product4' (CCCCCCCCCC, DDDDDDDDDD), но это дает мне неверный результат, поскольку такие же PAN есть и в других продуктах (Product1, Product2, Product3, Product5). Таким образом, вместо того, чтобы давать результат (CCCCCCCCCC, DDDDDDDDDD), он дает (AAAAAAAAAA, BBBBBBBBBB, CCCCCCCCCC, DDDDDDDDDDD)

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Другой подход с левым соединением

select a.*
from table1 a
left join table1 b on a.PAN = b.PAN and b.Product = 'Product4'
where b.PAN is null

или используя условную агрегацию

select a.PAN
from table1 a
group by PAN
having count(case when Product = 'Product4' then 1 else null end) = 0

Демо

0 голосов
/ 28 июня 2018

Я считаю, что вам нужно что-то вроде:

SELECT PAN from myTable 
WHERE PAN NOT IN ( SELCT PAN from myTable 
WHERE Product ='Product4')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...