我有一个``rel_type''表,其中包含3个字段:id,id_customer,id_type,我必须唯一地获取仅具有值9和11作为id_type的id_customer。 因此,如果我的Recod具有这两个值但又具有其他值,则不必提取它们。
我尝试了各种方法,但没有结果。
例如:
id | id_customer | id_type
--------------------------
1 | 123 | 11
2 | 345 | 9
3 | 123 | 9
4 | 788 | 5
5 | 788 | 11
6 | 788 | 9
7 | 788 | 4
我希望输出为123,这是唯一具有两个请求值且不超过两个的id_customer。
答案 0 :(得分:1)
我将id_customer
分组,然后应用两个条件-总计数为2,具有9或11的记录的计数也为2:
SELECT id_customer
FROM mytable
GROUP BY id_customer
HAVING COUNT(*) = 2 AND
COUNT(CASE WHEN id_type IN (9, 11) THEN 1 END) = 2
答案 1 :(得分:0)
您可以按id_customer
分组:
select id_customer
from tablename
group by id_customer
having min(id_type) = 9 and max(id_type) = 11 and count(distinct id_type) = 2