Wie zähle ich eindeutige Aufzeichnungen und erhält die Anzahl dieser Einheitlichkeiten in der Tabelle mit SQL?

StackOverflow https://stackoverflow.com/questions/237302

Frage

Stellen Sie sich vor, ich habe einen solchen Tisch:

ID: Produkt: Shop_id

2: Fußball: 41

3: Rakete: 45

4: Auto: 86

5: Flugzeug: 86

Dies ist ein Beispiel für eine große Internet -Mall, in der es Geschäfte gibt, die an einen Kunden verkaufen, damit der Kunde mehr Produkte aus jedem Geschäft auswählen und in einem Korb kaufen kann.

Ich bin mir jedoch nicht sicher, ob es eine SQL -Syntax gibt, mit der ich einfach eindeutige Shop_ids und die Gesamtzahl der Produkte dieser Läden im Kundenkorb erhalten kann. Also würde ich so etwas wie:

Shop 41 hat 2 Produkte

Kaufen Sie 45 ein Produkt ein

Kaufen Sie 86 zwei Produkte ein

Ich kann SQL -Abfragen vorlegen Noch ein Shop_id, um noch etwas zu haben, aber das scheint nur eine Menge nutzloser Skripte zu sein.

Wenn Sie eine nette und nette Idee haben, lassen Sie es mich bitte wissen.

War es hilfreich?

Lösung

Genau das ist die Art von Dingen, für die aggregierte Funktionen sind. Sie erstellen eine Ausgangszeile für jede Zeilengruppe in der Tabelle. Gruppieren Sie sie nach Shop_id und zählen Sie, wie viele Zeilen in jeder Gruppe sind.

select shop_id, count(1) from TABLE_NAME
  group by shop_id
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top