Première ligne d'un ORDER BY

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Première ligne d'un ORDER BY

Re: Première ligne d'un ORDER BY

par Couin » 27 févr. 2020, 23:58

Hello,

Merci pour ta réponse.

Je parviens au résultat voulu par cette requête :

Code : Tout sélectionner

SELECT * FROM ( SELECT titre, duree, bpm FROM `playlist` WHERE `titre` LIKE 'Klubbheads%' ORDER BY titre ASC, bpm DESC ) AS resultats GROUP BY titre
La syntaxe est-elle bonne ou bien y a-t-il plus propre ?

Si c'est au mieux comme ça , je marquerais en résolute :)

Re: Première ligne d'un ORDER BY

par Spols » 27 févr. 2020, 09:39

j'ai pas testé, mais je penserais à faire 2 requète imbriquée la rpremière (la plus "profonde" ) avec le ORDER BY et la 2ème avec le GROUP BY

Première ligne d'un ORDER BY

par Couin » 24 févr. 2020, 06:34

Hello !!!

Je cale sur une requête :(

J'ai une table avec des titres pour des playlists hebdo, avec plusieurs colonnes, notamment :!titre, bpm, duree

Tous les titres joués sont dans cette table.

Il se peut qu'un titre ayant été joué plus d'une fois, mais la durée et le bpm n'ont pas forcément été saisis à chaque fois (car il se peut que le titre ait été joué en bonus).

Sachant que je liste tous les titres joués, classés par titre ascendant, avec leur bpm et leur durée, j'ai une requête existante, que je simplifierais ici (car en réalité je ramasse plus d'infos dans d'autres colonnes de la table) :

Code : Tout sélectionner

SELECT titre, duree, bpm FROM `playlist` GROUP BY titre, bpm ORDER BY titre ASC
Pour exemple ici, je limite la requête à quelques résultats, sans les grouper :

Code : Tout sélectionner

SELECT titre, duree, bpm FROM `playlist` WHERE `titre` LIKE 'Klubbheads%' ORDER BY titre ASC
Voici les résultats :

Code : Tout sélectionner

Klubbheads - Dubbhopping 05:50 132.7 Klubbheads - Dubhopping 0.0 Klubbheads - Kicking Hard 0.0 Klubbheads - Kicking Hard 0.0 Klubbheads - Kicking Hard 07:13 134.8 Klubbheads - Kicking Hard 0.0 Klubbheads - Kicking Hard (Euro Dub) 0.0
On peut voir que "Kicking Hard" a été joué 3 fois en tant que bonus et une fois en playlist, pour laquelle j'ai noté bpm et durée.

Si je groupe par titres :

Code : Tout sélectionner

SELECT titre, duree, bpm FROM `playlist` WHERE `titre` LIKE 'Klubbheads%' GROUP BY titre ORDER BY titre ASC
Voici les résultats :

Code : Tout sélectionner

Klubbheads - Dubbhopping 05:50 132.7 Klubbheads - Dubhopping 0.0 Klubbheads - Kicking Hard 0.0 Klubbheads - Kicking Hard (Euro Dub) 0.0
J'aimerais autant récupérer le Kicking Hard qui a bpm et durée de renseignés.

Donc j'ajoute un critère à l'ORDER BY :

Code : Tout sélectionner

SELECT titre, duree, bpm FROM `playlist` WHERE `titre` LIKE 'Klubbheads%' GROUP BY titre ORDER BY titre ASC, bpm DESC
Les résultats sont les mêmes (et même si le mets bpm ASC).

J'ai beau tester dnas tous les sens, pas moyen d'obtenir :

Code : Tout sélectionner

Klubbheads - Dubbhopping 05:50 132.7 Klubbheads - Dubhopping 0.0 Klubbheads - Kicking Hard 07:13 134.8 Klubbheads - Kicking Hard (Euro Dub) 0.0
Un tite nidée ? :D

Merkouin !