Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 15h59   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 69
Points : 12
Points : 12
Par défaut problème de syntaxe dans une requête SQL

bonjour,
je ne comprends pas cette requête (sûrement simple mais la syntaxe m'échappe):

Code :
1
2
3
4
5
 
SELECT * FROM
(SELECT  ch1  ,  ch2  ,  ch3  , count(*) AS ind
 FROM TABLE
 GROUP BY 1,2,3) X WHERE ind <>1
c'est la présence du "X" qui me dérange
merci pour votre aide
nutopia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h12   #2
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 877
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 877
Points : 7 640
Points : 7 640
X est un alias désignant le résultat de la seconde requete

C'est un peu comme si tu exécutais d'abord la seconde requete, que tu mette le résultat obtenu dans une table appelée X, et que ensuite tu exécute la requete principale sur cette table X

Sauf que là cette sorte de "table" n'existe pas ailleurs qu'en mémoire.
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h15   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 69
Points : 12
Points : 12
merci

cette requête permet de trouver des doublons?
nutopia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h22   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 944
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 944
Points : 18 137
Points : 18 137
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par nutopia Voir le message
cette requête permet de trouver des doublons?
Des doublons sur le triplet {ch1, ch2, ch3} oui.

Mais cette requête peut être optimisée et mieux écrite :
Code :
1
2
3
4
SELECT col1, col2, col3, COUNT(*) AS ind
FROM latable
GROUP BY col1, col2, col3
HAVING COUNT(*) > 1
- col (pour colonne) à la place de ch (pour champ qui est une mauvaise appellation).
- GROUP BY sur le nom des colonnes plutôt que sur leur position car si un petit malin change l'ordre des colonnes du SELECT, cela peut changer le résultat.
- HAVING COUNT plutôt que la sous-requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 17h17   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 69
Points : 12
Points : 12
merci beaucoup Cinephil!
nutopia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h41.


 
 
 
 
Partenaires

Hébergement Web