J'ai une table simple:Comment vérifier groupe pour contenir certains éléments dans SQL?
id num
1 7
1 5
1 4
2 5
2 4
2 7
3 4
3 7
Comment sélectionner ids ayant num 5 ainsi que 7 et 4
Pour cet exemple ids: 1, 2
J'ai une table simple:Comment vérifier groupe pour contenir certains éléments dans SQL?
id num
1 7
1 5
1 4
2 5
2 4
2 7
3 4
3 7
Comment sélectionner ids ayant num 5 ainsi que 7 et 4
Pour cet exemple ids: 1, 2
SELECT `id` FROM `table`
WHERE `num` IN (4, 5, 7)
GROUP BY `id`
HAVING COUNT(*) = 3
correct. réponse exacte. – Karthik
que faire si vous obtenez 4,4,4 dans un seul groupe? –
Changer COUNT (*) = 3 à COUNT (DISTINCT 'num') = 3 devrait corriger cela –
Que diriez-vous
;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
Ceci est une version très légèrement modifiée de la réponse de zerkms:
SELECT `id` FROM `table`
WHERE `num` IN (4, 5, 7)
GROUP BY `id`
HAVING COUNT(DISTINCT `num`) = 3
Quel est le type de colonne de 'num'? Est-ce une chaîne (par exemple ID = 1 Num = "7 1 5 1 4")? –
Je pense que vous vouliez dire IDs 1 et 2. –