[SQL] faire un ORDER BY sur le résultat d'un COUNT?

faire un ORDER BY sur le résultat d'un COUNT? [SQL] - ASP - Programmation

Marsh Posté le 05-01-2004 à 11:48:55    

J'aimerais simplement renvoyer le ou les enregistrements les plus fréquents dans la table en fonction d'un champ
 
soit la requête suivante :
 

Code :
  1. SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY NbCol DESC


 
Problème, elle fonctionne sans le ORDER BY (en rouge) uniquement, mais si je vire le ORDER BY, je me retrouve avec une liste à rallonge de chiffres (les résultats de tous les COUNT), qui n'est pas facilement exploitable...
 
Si le ORDER BY fonctionnait, j'aurais qu'à faire SELECT TOP 10... pour récupérer les 10 enregistrements les plus fréquents :(
 
comment faire?

Reply

Marsh Posté le 05-01-2004 à 11:48:55   

Reply

Marsh Posté le 05-01-2004 à 12:11:24    

duch a écrit :

J'aimerais simplement renvoyer le ou les enregistrements les plus fréquents dans la table en fonction d'un champ
 
soit la requête suivante :
 

Code :
  1. SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY NbCol DESC


 
Problème, elle fonctionne sans le ORDER BY (en rouge) uniquement, mais si je vire le ORDER BY, je me retrouve avec une liste à rallonge de chiffres (les résultats de tous les COUNT), qui n'est pas facilement exploitable...
 
Si le ORDER BY fonctionnait, j'aurais qu'à faire SELECT TOP 10... pour récupérer les 10 enregistrements les plus fréquents :(
 
comment faire?


SELECT TOP 10 v.col, v.nbcol
from (SELECT col, count(col) AS NbCol FROM table GROUP BY col) v
order by nbcol


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 05-01-2004 à 12:14:06    

merci pour ta réponse tomlameche, mais y'a un truc que je capte pas, c'est quoi ce "v" qui se promène avant le ORDER BY?
 
 
 
EDIT : J'ai essayé, et ça ne fonctionne pô, le plus drole c'est que ça ne tiens pas compte du TOP 10 et me renvoi tous les enregistrements.
 
En fait ça viens peut-être de mon moteur de bdd (c'est un fichier .dbf, dBase IV)
 
Mais bon dans tous les cas NbCol est toujours = 1


Message édité par duch le 05-01-2004 à 12:27:05
Reply

Marsh Posté le 05-01-2004 à 15:34:35    

bon ça marche comme ça :  
 
SELECT TOP 10 col, NbCol  
from (SELECT col, count(col) AS NbCol FROM table GROUP BY col) order by NbCol DESC
 
 
merci


Message édité par duch le 05-01-2004 à 15:35:13
Reply

Marsh Posté le 05-01-2004 à 15:36:55    

le v c'est un alias, le résultat renvoyé par tout le bordel entre parenthèse s'appellera v dans le reste de la requête.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 05-01-2004 à 15:41:42    

C'est bien ce qu'il me semblait...

Reply

Marsh Posté le 05-01-2004 à 16:02:56    

question con avant de répondre quoi que ce soit: SGDB?

Reply

Marsh Posté le 05-01-2004 à 16:19:51    

Système de Gestion de Base de Données
 
Sinon pour répondre tu pouvais faire une vue et trier le select sur la vue ;)


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
Reply

Marsh Posté le 05-01-2004 à 16:22:33    

... je lui demandais LEQUEL...

Reply

Marsh Posté le 05-01-2004 à 16:25:30    

gizmo a écrit :

... je lui demandais LEQUEL...


Citation :

En fait ça viens peut-être de mon moteur de bdd (c'est un fichier .dbf, dBase IV)


 
lundi difficile, hein... :D
 
EDIT: à moins que tu veuilles la version du connecteur ODBC ?


Message édité par dalcap le 05-01-2004 à 16:26:17
Reply

Marsh Posté le 05-01-2004 à 16:25:30   

Reply

Marsh Posté le 05-01-2004 à 16:31:02    

ouais, lundi difficile :/
 
Malheureusement, je ne connais pas les possibilités de cette DB.

Reply

Marsh Posté le 05-01-2004 à 16:31:21    

c'est ça que tu veux? :
 
Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;DBQ=C:\Inetpub\wwwroot\xxxx;FIL=dBase IV
 
 
M'enfin vous prenez pas la tête, ça marche :D

Reply

Marsh Posté le 05-01-2004 à 17:29:36    

oui, duch, ça marche, tant mieux.
c'est juste que je n'avais pas compris la question de gyzmo, à savoir s'il voulait juste connaitre le type de sgbd ou la version du driver...
En passant, ta réponse ne m'aurait pas beaucoup aidé...driverId=277, oui oui oui, c'est cela... :D (encore heureux que l'on voit que c'est le driver µ$)
 
devine ce que je viens de prendre dans mon frigo, c'est le 4è article sur la 2è rangée, tu peux me dire si c'est sucré ?


Message édité par dalcap le 05-01-2004 à 17:30:37
Reply

Marsh Posté le 05-01-2004 à 17:36:55    

Tu manges du surimi à cette heure çi ? Ca fait tôt, non ?


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
Reply

Marsh Posté le 05-01-2004 à 17:51:24    

:ouch: comment t'as deviné ?


Message édité par dalcap le 05-01-2004 à 17:51:49
Reply

Marsh Posté le 06-01-2004 à 11:15:39    

Rangé pareil chez moi :lol:


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
Reply

Marsh Posté le 06-01-2004 à 12:25:29    

:heink:
 

SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY count(col) DESC


 
Ca amrche très bien...
 
Ou alors :
 

SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY 2 DESC


 
Vous vous compliquez la vie pour pas grand chose ;)

Reply

Marsh Posté le 06-01-2004 à 12:42:02    

MagicBuzz a écrit :

:heink:
 

SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY count(col) DESC


 
Ca amrche très bien...
 
Ou alors :
 

SELECT col, count(col) AS NbCol FROM table GROUP BY col ORDER BY 2 DESC


 
Vous vous compliquez la vie pour pas grand chose ;)


Héhé, c'est ben ce que je me disai, mais j'avais pas de BDD sous la main pour vérifier et vu son post de départ, j'ai eu un doute !  
J'ai honte   :(


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 06-01-2004 à 14:34:38    

il faudrait que duch nous confirme, je suis d'accord avec toi, magicbuzz, mais bon, si c'est pas du 100% oracle, des fois, on a des surprises...(et même avec de l'oracle parfois...snif)

Reply

Marsh Posté le 06-01-2004 à 15:15:37    

Va te cacher :D

Reply

Marsh Posté le 06-01-2004 à 15:49:11    

Chez moi ça marchais pô.
 
C'est pas du oracle mais du dBase IV avec les drivers standards de krosoft.
 
 
M'enfin ça marche :D

Reply

Marsh Posté le 06-01-2004 à 16:42:56    

oki, j'suis parti....:cry:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed