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

 PostgreSQL Discussion :

select distinct sans orderby


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Points : 62
    Points
    62
    Par défaut select distinct sans orderby
    Bonjour à tous,

    Au risque de passer pour une sombre abrutie, je me pose une question et je tourne en rond.

    Je voudrais faire un select sur une table qui contient des enregistrements dont l'ordre d'entrée est important mais qui n'ont pas d'id propre qui sert à les ordonner. (Je n'ai pas la main sur ce choix là).

    Or il arrive que certaines de ces entrées soient doubles. J'aimerais faire un select distinct pour n'avoir que des single mais tout en gardant l'ordre préétabli.

    Alors je vois des possibilités de le faire, mais absolument rien qui ne ressemble pas à une usine à gaz. Peut être ai je loupé de quelque chose et qu'il existe une solution toute simple ?

    Merci beaucoup à tous

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 288
    Points
    7 288
    Par défaut
    Tu dis que l'ordre d'entrée est important, c'est que tu dois bien avoir un critère sur lequel appliquer le ORDER BY. Pourquoi est-ce une usine à gaz? Quel(s) est/sont le(s) type(s) de ce(s) critère(s)?
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 143
    Points
    143
    Par défaut
    Si par "ordre d'entrée" tu entends "ordre d'insertion", alors tu commets un erreur d'appréciation courante lorsqu'on débute en SQL

    Pour t'en convaincre, je te recommande la lecture de l'article suivant : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L5.

    La seule solution comme l'a indiqué kain_tn c'est l'utilisation d'une clause ORDER BY...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Points : 62
    Points
    62
    Par défaut
    Ah oui bah voilà c'était ça mon problème.

    Merci beaucoup pour ce lien. J'ai appris pas mal de choses du coup.

    En fait sans rajouter de champs c'est juste plus ou moins arbitraire si les données arrivent dans tel ou tel ordre et le moindre changement peut faire sauter tout cet ordre. Right ?

    En fait j'ai un fichier txt de données en entrée, que je parse. Je met ces données dans des tables associées (après un petit traitement ). L'ordre de ces données étant important, il faut que je rajoute une colonne et que j'utilise un truc genre serial, dans ce cas là ?

    A la base on me demandait de NE PAS toucher à la structure de cette table. Or là je pense que c'est tout bonnement impossible de faire sans.

    Merci en tout cas pour vos réponses !

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    C'est tout à fait ça. Il n'y pas d'ordre implicite dans les tables et une colonne de type serial est un bon choix pour trier ensuite par ordre d'insertion.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 90
    Points : 62
    Points
    62
    Par défaut
    Super !

    Merci à tous & bon week end

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

Discussions similaires

  1. select distinct à deux niveaux pour count sans doublon
    Par vonwolf dans le forum Langage SQL
    Réponses: 5
    Dernier message: 29/11/2008, 23h45
  2. Select distinct
    Par mic79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/04/2005, 16h30
  3. select distinct substring
    Par nmerydem dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/06/2004, 16h58
  4. Select distinct et order by
    Par arsgunner dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/06/2004, 11h17
  5. equivalent SELECT DISTINCT pour MyBase?
    Par chrisou31 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 19h33

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