Wie man Gruppen von Zeilen zählt und die obere / untere 3 anzeigt

8

Mir ist klar, dass dies wahrscheinlich ein einfacher ist, aber mein SQL ist bestenfalls einfach.

Nehmen wir an, ich habe eine Tabelle mit einer Liste von Bestellungen, wobei item_id eine der Spalten ist. Ich muss die 3 am wenigsten (oder 3) beliebtesten Bestellungen von Artikel anzeigen.

Ich weiß, dass ich die Bestellungen mit item_id gruppieren und dann zählen muss. Dann muss ich die untere (oder obere) 3 in absteigender (oder aufsteigender) Reihenfolge anzeigen. Ich bin mir nicht ganz sicher, wie man eine solche Abfrage erstellt.

    
user271132 19.02.2010, 17:11
quelle

4 Antworten

10

In SQL Server :

%Vor%

Und fügen Sie DESC hinzu, um Abstieg zu bestellen

    
David Espart 19.02.2010, 17:18
quelle
3
%Vor%

gibt Ihnen die ganze Liste.

Unten 3:

%Vor%

Top 3:

%Vor%

HINWEIS: Diese Syntax ist für Oracle. Verwenden Sie LIMIT, wenn Sie MySql oder TOP haben, wenn Sie SQL-Server haben.

ORDER BY sortiert Ihre Ergebnisse. Aufsteigende Reihenfolge ist Standard, also verwenden Sie 'desc', wenn Sie die größte erhalten möchten.

GROUP BY (bei Verwendung mit count (*)) zählt Gruppen ähnlicher Objekte

wo rownum & lt; 4: Das ist Orakel war eine LIMIT zu tun. Es gibt die ersten drei Zeilen der Abfrage zurück, die ausgeführt wurde. Where-Klauseln werden vor Order-Klauseln ausgeführt, weshalb Sie dies als geschachtelte Abfrage durchführen müssen.

    
David Oneill 19.02.2010 17:15
quelle
3

Für SQL Server:

%Vor%

gibt dir die 3 beliebtesten Item_IDs

mit:

%Vor%

gibt dir die 3 am wenigsten populären item_id's

    
DWong 19.02.2010 17:17
quelle
2

In MySQL :

%Vor%     
Quassnoi 19.02.2010 17:17
quelle