2016-09-20 2 views
0

Ich habe Tabelle "Bestellungen" mit Spalten-ID (ID-Reihenfolge) und IDU (ID-Benutzer). Ich möchte wie folgt berechnen:MySQL SELECT COUNT GROUP

50 person have 1 order 
30 person have 2 order 
etc... 

Mein Code (sehr schlecht)

SELECT DISTNICT count(id), count(idu) FROM orders GROUP BY idu 

Bitte helfen Sie mir :)

+0

Könnten Sie bitte Ihre Tabellenstruktur zusammen mit einigen Beispieldaten teilen? – 1000111

+0

willst du Text so? –

Antwort

3

Ich nenne das ein Histogramm Histogramm Abfragen. Sie möchten wissen, wie viele Benutzer eine bestimmte Auftragsanzahl haben. Die Lösung ist zweimal Subqueries und group by zu verwenden:

select cnt, count(*), min(idu), max(idu) 
from (select idu, count(*) as cnt 
     from orders 
     group by idu 
    ) ou 
group by cnt; 

Wenn diese Art der Abfrage ausgeführt wird, ich in der Regel die min und max des Benutzer-ID enthalten, so kann ich ohne weitere Beispiele für Benutzer (in der Regel jene finden, die viele haben Aufträge).

+1

du meinst zweimal "Gruppe von"? – Jigar

+0

Liebte diesen Ausdruck ** Histogramm des Histogramms ** – 1000111