我有一个像这样的值的表:
Customer Product#
A 1
A 3
A 5
A 7
A 11
A 13
B 5
B 11
B 13
C 4
C 5
C 6
C 11
C 14
C 42
C 60
我想要一个查询,它将为我提供所有客户:
a. Either Product# 1 OR 5
AND
b. BOTH Product# 11 AND 13.
我将不胜感激任何帮助或建议。
谢谢!
答案 0 :(得分:4)
试试这个:
concat($first-name, ' ' , $last-name)[not(contains(., 'Kiran'))]
按客户分组以查找是否存在11和13,使用条件聚合,同样,检查客户是否至少有一行,其中1或5行。
答案 1 :(得分:0)
'HAVING'可以工作,但您也可以使用几个子选项来执行此操作 - 更长,效率更低,但更容易记录和/或使用更复杂的输出。
SELECT DISTINCT
a.customer
FROM
your_table AS a
WHERE
a.customer IN ( SELECT customer FROM your_table WHERE product# IN (1,5) )
AND a.customer IN ( SELECT customer FROM your_table WHERE product# = 11)
AND a.customer IN ( SELECT customer FROM your_table WHERE product# = 11)