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 :

ORDER BY récalcitrant


Sujet :

Requêtes MySQL

  1. #21
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    En fait, j'avais fait une erreur sur le group by, c'est plutôt:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * FROM (
       SELECT count(*) AS total, a.id_article AS id,article_titre,type_article_intitule
       FROM pevtt_statistique a
       JOIN pevtt_article b ON a.id_article = b.id_article
       JOIN pevtt_article_type_article c ON b.id_article = c.id_article
       JOIN pevtt_type_article d ON c.id_type_article = d.id_type_article
       WHERE type_article_intitule != "nouvelle"
       GROUP BY type_article_intitule, id, article_titre
       LIMIT 10) tableDesDix
    ORDER BY total DESC
    Que je trouve pas mal ( bon maintenant les alias, c à toi de voir)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  2. #22
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bien tenté encore une fois mais cela me sort le top 10 des balades et non le top 10 tous article confondu

  3. #23
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Pourtant je l'aimais bien ma requête ...

    Qd tu dis le top 10 des balades, c'est comme à l'écran que tu m'as mis la dernière fois ? C'est bizzare qd même ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #24
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Elle était belle en effet.

    Le top 10 car il y a un LIMIT 10 et balade car c'est un ORDER BY type_article_intitule sous entendu ASC. Étant donné que le type d'article "balade" possède un b, c'est ce genre d'article qui ressort.

    Les 10 balades les plus vues sont donc ressorties.

  5. #25
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Non en fait, elle est nulle ma requête En effet, un group by sur les types limité à 10, c que le type 'ballades', dans le tri alphabétique c'est le b, il ne doit pas y avoir de a non ?

    Donc c le contraire. ...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * FROM (
       SELECT count(*) AS total, a.id_article AS id,article_titre,type_article_intitule
       FROM pevtt_statistique a
       JOIN pevtt_article b ON a.id_article = b.id_article
       JOIN pevtt_article_type_article c ON b.id_article = c.id_article
       JOIN pevtt_type_article d ON c.id_type_article = d.id_type_article
       WHERE type_article_intitule != "nouvelle"
       ORDER BY total desc
       LIMIT 10) tableDesDix
    GROUP BY type_article_intitule, id, article_type DESC
    La requête interne, prend effectivement le top 10 des totaux, puis ensuite le group by de la nouvelle table
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #26
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Le top 10 car il y a un LIMIT 10 et balade car c'est un ORDER BY type_article_intitule sous entendu ASC. Étant donné que le type d'article "balade" possède un b, c'est ce genre d'article qui ressort.

    Les 10 balades les plus vues sont donc ressorties.
    pas prem's
    même reflexion !!! que des grands cerveaux en ébullition en ce moment
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #27
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    La requête proposée retourne une seule ligne après correction de article_type dans le GROUP BY en type_article_intitule

    260 233 Test et avis sur la tente tunnel Salewa Omega II test

  8. #28
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT * FROM (
       SELECT count(*) AS total, a.id_article AS id,article_titre,type_article_intitule
       FROM pevtt_statistique a
       JOIN pevtt_article b ON a.id_article = b.id_article
       JOIN pevtt_article_type_article c ON b.id_article = c.id_article
       JOIN pevtt_type_article d ON c.id_type_article = d.id_type_article
       WHERE type_article_intitule != "nouvelle"
       GROUP BY a.id_article, article_titre,type_article_intitule
       ORDER BY total DESC
       LIMIT 10) tableDesDix
    ORDER BY tableDesDix.type_article_intitule ASC
    Que donne cette requête ?

    Le GROUP BY doit être fait dans la sous requête car c'est la que ce fait le comptage, donc la sous-requête va remonter les 10 articles les plus lus puis va ré-appliquer un trie sur la table temporaire tableDesDix.
    une réponse vous a permis d'avancer ?

  9. #29
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT * FROM (
       SELECT count(*) AS total, a.id_article AS id,article_titre,type_article_intitule
       FROM pevtt_statistique a
       JOIN pevtt_article b ON a.id_article = b.id_article
       JOIN pevtt_article_type_article c ON b.id_article = c.id_article
       JOIN pevtt_type_article d ON c.id_type_article = d.id_type_article
       WHERE type_article_intitule != "nouvelle"
       GROUP BY a.id_article, article_titre,type_article_intitule
       ORDER BY total DESC
       LIMIT 10) tableDesDix
    ORDER BY tableDesDix.type_article_intitule ASC
    Que donne cette requête ?

    Le GROUP BY doit être fait dans la sous requête car c'est la que ce fait le comptage, donc la sous-requête va remonter les 10 articles les plus lus puis va ré-appliquer un trie sur la table temporaire tableDesDix.
    Bingo, c'est la bonne, un grand merci à tous

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02
  2. order by sur plusieurs tables
    Par Mad_Max dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2003, 12h17
  3. Probleme avec un "order by"
    Par LineLe dans le forum ASP
    Réponses: 30
    Dernier message: 16/09/2003, 15h38
  4. ORDER BY
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/07/2003, 11h56
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 13h29

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