我有一个简单的表:如何检查包含SQL中某些元素的组?
id num
1 7
1 5
1 4
2 5
2 4
2 7
3 4
3 7
如何选择具有NUM 5以及图7和4
对于这个例子IDS IDS:1,2
我有一个简单的表:如何检查包含SQL中某些元素的组?
id num
1 7
1 5
1 4
2 5
2 4
2 7
3 4
3 7
如何选择具有NUM 5以及图7和4
对于这个例子IDS IDS:1,2
SELECT `id` FROM `table`
WHERE `num` IN (4, 5, 7)
GROUP BY `id`
HAVING COUNT(*) = 3
是正确的。确切的答案。 – Karthik 2010-04-29 10:10:50
如果你在一个组中获得4,4,4,该怎么办? – 2010-04-29 10:23:57
将COUNT(*)= 3更改为COUNT(DISTINCT'num')= 3应该修复该问题 – 2010-04-29 10:30:05
如何
;WITH T AS
(
SELECT ID, NUM, COUNT(*) OVER(PARTITION BY ID) AS ROWNO,
SUM(NUM) OVER(PARTITION BY ID) AS SUMNUM
FROM TABLE
)
SELECT ID, NUM
FROM T
WHERE ROWNO = 3 AND SUMNUM = 16
这是一个zerkms的回答非常略微修改版本:
SELECT `id` FROM `table`
WHERE `num` IN (4, 5, 7)
GROUP BY `id`
HAVING COUNT(DISTINCT `num`) = 3
'num'的列类型是什么?它是一个字符串(例如ID = 1 Num =“7 1 5 1 4”)? – 2010-04-29 09:59:53
我认为你的意思是ids 1和2. – 2010-04-29 10:20:25