2010-08-03 3 views
3

J'ai une table my sql avec les noms des clients et les commandes qu'ils ont placées au fil du temps.Comment obtenir une sortie de commande après avoir utilisé le groupe dans la requête sql?

Les noms de colonne de table sont l'ID, le nom du client, la valeur de la commande, l'état, et créés et modifiés.

Je suis en mesure de regrouper les noms des clients et le nombre de commandes.

aide d'une requête SQL comme ça ..

SELECT Customer,count(OrderPrice) FROM Orders GROUP BY Customer 

Il fonctionne très bien. Mais je veux que la sortie soit ordonnée par le nombre de commandes (compte). Le client avec beaucoup de commandes arrive en tête de liste.

J'apprécie toute aide.

Merci.

Répondre

5
SELECT Customer 
     , count(OrderPrice) cnt 
     FROM Orders 
    GROUP BY Customer 
    ORDER BY cnt DESC 
+0

FYI: Le numéro dans ORDER BY est appelé un "ordinal" - il se réfère à la valeur de la colonne dans la 2ème position de la clause SELECT dans cet exemple. Ce n'est pas une pratique recommandée - si l'ordre des colonnes change, la commande sera toujours basée sur la deuxième colonne. –

+0

@OMG Poneys - Assez bien, je l'ai réparé :). – dcp

+0

J'ai déjà augmenté –

1

comptage clientèle sélecte, (OrderPrice) ORDER_COUNT FROM Commandes GROUP BY client ORDER BY ORDER_COUNT desc

Amusez-vous!

+1

Vos GROUP BY/ORDER BY sont à rebours (c'est-à-dire que GROUP BY vient avant ORDER BY). – dcp

+0

Bonne prise - Merci! – Doug

Questions connexes