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

SQL Oracle Discussion :

Question sur select distinct et le tri.


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 25
    Points : 7
    Points
    7
    Par défaut Question sur select distinct et le tri.
    Bonjour,
    Dans une requete avec select distinct, est ce qu'on obtient un resultat trié ou pas? j'ai testé mais le resultat est non trié, et pourtant je sais que l'algo qu'utilise le distinct est basé sur le tri pour eliminer les doublons !!
    je me demande donc si on peut zapper le order by quand on a un select distinct.
    Merci par avance.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    La seule façon d'assurer le tri est l'order by. Voilà ce qui arrive quand on se base sur des effets de bord.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 25
    Points : 7
    Points
    7
    Par défaut
    Merci bcp mnitu, c'est très interessant, en fait je n'ai pas fait attention au fait qu'en 10g on a un Hash Group by et non pas un Sort Group by.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Même un SORT GROUP BY ne garantissait pas le tri en Oracle pré 10g.

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Points : 6 446
    Points
    6 446
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Une précision:
    je me demande donc si on peut zapper le order by quand on a un select distinct.
    Si on veut un résultat trié, on doit mettre un ORDER BY. Par contre, si oracle sait que l'opération précédente renvoi un résultat trié, lui il a la possibilité de 'zapper' le tri.
    Cordialement,
    Franck.

  6. #6
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Sans oublier qu'outre l'histoire du HASH GROUP BY, il y a aussi, entre autres, le fait que le tri est binaire pour les chaînes de caractères...

    (et puis je suis pas sûr mais il y a peut être moyen qu'il y ait de l'exécution parallèle qui peut aussi mettre le foutoir !)

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par pacmann Voir le message
    ...le fait que le tri est binaire pour les chaînes de caractères...
    ...
    Pas toujours: Linguistic Sorting and String Searching

Discussions similaires

  1. une question sur Selection
    Par naty76 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2009, 20h16
  2. Question sur Selection.find (Recherche)
    Par Jakalop dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/06/2008, 18h06
  3. Petite question sur le DISTINCT
    Par azertix dans le forum Langage SQL
    Réponses: 10
    Dernier message: 19/06/2008, 13h33
  4. SELECT DISTINCT et double tri
    Par jak0 dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/06/2006, 12h36
  5. question sur SELECT ...WHERE...IN
    Par danseur dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/01/2004, 15h23

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