Bonjours
comment faire une requete qui retourne les valeurs répetées d'un champs dans une table
(exp: le champs 'mat contient {11,12,14,11,13,14} ma requete doit retourner
11 et 14)
merci
Bonjours
comment faire une requete qui retourne les valeurs répetées d'un champs dans une table
(exp: le champs 'mat contient {11,12,14,11,13,14} ma requete doit retourner
11 et 14)
merci
une requête select avec un Group By et un Having.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Mat FROM MaTable GROUP BY mat HAVING (count(mat)>1);
La requête SQL suivante fonctionne également
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Mat FROM MaTable GROUP BY mat HAVING (count(*)>1);
Envoyé par sillycoder
Moi je mettrais
count(1) => ca lit pas les champs donc c'est plus rapide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Mat FROM MaTable GROUP BY mat HAVING (count(1 )>=2);
>=2 ... si je me souviens bien le having prefere ca ....
le premier avec tous ....Envoyé par Mathusalem
count(*) ca equivaut a faire "count(unchamp)" donc il a besoin de parcourir le bloc pour avoir la valeur du champ ....
count(1) => ben il lit 1 donc pas de lecture de champs .....
pour le having , je crois me souvenir que la clause "=" (ou >=) permet d'utiliser les index etc ...
je sais que c'est bon en oracle et en principe ca doit etre bon pour les autres ..( en plus ca coute rien de faire ca )
Partager