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

Requêtes MySQL Discussion :

Faire un tri avant un group by [Fait]


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Faire un tri avant un group by
    Je cherche depuis des heures comment faire un tri avant de faire un group by dans mon select.
    En gros je voudrais trier mes enregistrements par date et ensuite ne selectionner qu'un enregistrement par champ toto identique.
    Et bah pas moyen
    Si quelqu'un a une idée ca me sauverai et sa m'empecherai de prendre mon deuxième aspirine 1000 de la journée :o

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Précise exactement ce que tu veux faire, parce que là c'est très flou.

    Il y a des chances que tu puisses faire cela à l'aide d'une jointure (mais c'est tout ce que je peux dire pour le moment, il faudrait en savoir plus)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut Re: Faire un tri avant un group by
    Citation Envoyé par Igarpoor
    ne selectionner qu'un enregistrement par champ toto identique.
    Sur quel critère ? Quelle version utilises-tu ? Si ta version est >= 4.1, alors une sous-requête est sans doute plus appropriée qu'un GROUP BY
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Alors j'ai mysql 3.quelquechose donc les sous-requetes je peut oublier
    Sinon c'est très simple j'ai une table du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    id |  date    |  group
    1   2006-02-01  group1
    2   2006-01-01  group1
    3   2006-03-01  group2
    4   2006-02-01  group2
    5   2006-04-01  group1
    et je ne veux récupérer que 1 enregistrement par group, celui qui a la date la plus récente, donc récupérer les enregistrements 5 et 3.

    Voilou

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Sans sous-requête, tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.ID, a.Date, a.Group
    FROM laTable a, laTable b
    WHERE a.Group = b.Group
    GROUP BY a.ID, a.Date, a.Group
    HAVING a.Date = MAX(b.Date)
    Je n'ai pas utilisé la syntaxe normée pour la jointure, car je ne sais pas si ta version le supporte
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Je pense qu'avec la requête de Médiat, ça ne va ressortir que les enregistrements ayant la date la plus récente (sans tenir compte des date les plus récentes par groupe)

    Va jeter un oeil ici:
    http://pcaboche.developpez.com/artic...eure/?page=2_2

    Dans ton cas, c'est la requête de base qui t'intéresse. Tu n'as pas besoin des raffinements.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Médiat
    Sans sous-requête, tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.ID, a.Date, a.Group
    FROM laTable a, laTable b
    WHERE a.Group = b.Group
    GROUP BY a.ID, a.Date, a.Group
    HAVING a.Date = MAX(b.Date)
    euh, j'ai du mal m'exprimer quelque part, parce que je n'ai qu'une table pas deux.
    Je vais regarder ton histoire de max().

  8. #8
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    En fait, il ne s'agit pas d'une jointure entre 2 tables mais d'une auto-jointure (une jointure portant sur la même table).
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    mais lol, j'en apprend tout les jours, merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Bon bah, je viens de tester et la requete de Médiat à l'air de marché, de toute manière je devrai m'en sortir maintenant.
    Merci les gars

  11. #11
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Au temps pour moi alors...
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. [XPATH] XPath dû mal de faire le tri des API
    Par tralloc dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 27/04/2006, 00h07
  2. Réponses: 2
    Dernier message: 24/03/2006, 15h47
  3. Comment faire un aperçu avant impression (D7PRO)?
    Par tipiweb dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2006, 23h30
  4. Comment faire un test avant un FieldByName().value = ... ?
    Par fredfred dans le forum Bases de données
    Réponses: 13
    Dernier message: 19/09/2005, 10h09
  5. Comment faire le tri d'un array of array ?
    Par Tchouffy dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2005, 20h55

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