Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2381 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°602548
duch
Posté le 05-01-2004 à 11:48:55  profilanswer
 

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?

mood
Publicité
Posté le 05-01-2004 à 11:48:55  profilanswer
 

n°602579
tomlameche
Et pourquoi pas ?
Posté le 05-01-2004 à 12:11:24  profilanswer
 

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é
n°602581
duch
Posté le 05-01-2004 à 12:14:06  profilanswer
 

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
n°602803
duch
Posté le 05-01-2004 à 15:34:35  profilanswer
 

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
n°602806
nraynaud
lol
Posté le 05-01-2004 à 15:36:55  profilanswer
 

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
n°602812
duch
Posté le 05-01-2004 à 15:41:42  profilanswer
 

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

n°602838
gizmo
Posté le 05-01-2004 à 16:02:56  profilanswer
 

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

n°602862
bill.fr
Posté le 05-01-2004 à 16:19:51  profilanswer
 

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)
n°602870
gizmo
Posté le 05-01-2004 à 16:22:33  profilanswer
 

... je lui demandais LEQUEL...

n°602879
dalcap
Posté le 05-01-2004 à 16:25:30  profilanswer
 

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
mood
Publicité
Posté le 05-01-2004 à 16:25:30  profilanswer
 

n°602889
gizmo
Posté le 05-01-2004 à 16:31:02  profilanswer
 

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

n°602892
duch
Posté le 05-01-2004 à 16:31:21  profilanswer
 

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

n°603025
dalcap
Posté le 05-01-2004 à 17:29:36  profilanswer
 

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
n°603048
bill.fr
Posté le 05-01-2004 à 17:36:55  profilanswer
 

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)
n°603070
dalcap
Posté le 05-01-2004 à 17:51:24  profilanswer
 

:ouch: comment t'as deviné ?


Message édité par dalcap le 05-01-2004 à 17:51:49
n°603703
bill.fr
Posté le 06-01-2004 à 11:15:39  profilanswer
 

Rangé pareil chez moi :lol:


---------------
On ne vit qu'une fois, mais pour qui sait vivre, une seule fois suffit (Merril Stubbing)
n°603770
MagicBuzz
Posté le 06-01-2004 à 12:25:29  profilanswer
 

: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 ;)

n°603779
tomlameche
Et pourquoi pas ?
Posté le 06-01-2004 à 12:42:02  profilanswer
 

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é
n°603873
dalcap
Posté le 06-01-2004 à 14:34:38  profilanswer
 

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)

n°603974
MagicBuzz
Posté le 06-01-2004 à 15:15:37  profilanswer
 

Va te cacher :D

n°604004
duch
Posté le 06-01-2004 à 15:49:11  profilanswer
 

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

n°604042
dalcap
Posté le 06-01-2004 à 16:42:56  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

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

 

Sujets relatifs
pb avec résultat d'un formulaire[SQL] Comment on fait pour un age ?
[PHP/SQL] Erreur aléatoire????!!!!!![SQL] Question update/replace
[PL/SQL][C]Cherche docsur l'insertion de C dans le pl/sqlgraphiques SQL
MySQL a répondu:You have an error in your SQL syntax near 'Serveur loc[MySQL] - Requete SQL sur 3 tables + 2 count... ca foire a moitier
création de procedure en PL/SQL ? 
Plus de sujets relatifs à : [SQL] faire un ORDER BY sur le résultat d'un COUNT?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR