我有一個簡單的表:如何檢查包含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