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.
In SQL Server :
%Vor%Und fügen Sie DESC hinzu, um Abstieg zu bestellen
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.
Tags und Links sql sql-server sql-server-2008 count group-by