IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

problème de syntaxe dans une requête SQL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 56
    Points
    56
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    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 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 56
    Points
    56
    Par défaut
    merci

    cette requête permet de trouver des doublons?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 56
    Points
    56
    Par défaut
    merci beaucoup Cinephil!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de syntaxe dans une requête
    Par jncoffy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/02/2008, 08h53
  2. Erreur de syntaxe dans une requête SQL
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 08/01/2008, 17h19
  3. Problème de cumul dans une requête SQL
    Par soso78 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 13/09/2007, 05h56
  4. Problème avec like dans une requête SQL
    Par Boublou dans le forum SQL
    Réponses: 2
    Dernier message: 16/08/2007, 15h46
  5. Erreur de syntaxe dans une requête SQL
    Par amnesias dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo