Imagine I Tabelle wie folgt aussehen:Wie man einzigartige Aufzeichnungen zählt und die Anzahl dieser Uniques in der Tabelle mit SQL erhält?
id: Produkt: Arbeitsplatz_id
1: Basketball: 41
2: Fußball: 41
3: Rakete: 45
4: Auto: 86
5: Flugzeug: 86
Jetzt ist dies ein Beispiel für große Internet-Mall, wo es Geschäfte gibt, die an einen Kunden verkaufen, so kann der Kunde mehr Produkte von jedem Geschäft wählen und es in einem Korb kaufen.
Allerdings bin ich mir nicht sicher, ob es eine SQL-Syntax gibt, die es mir erlaubt, einfach shop_ids und die Gesamtzahl der Produkte dieser Shops im Kundenkorb zu erhalten. Also würde ich so etwas wie:
Shop-41 hat 2 Artikel
Shop-45 ein Produkt
Shop-86 zwei Produkte
Ich kann SQL-Abfragen macht Tabelle zu schaufeln bis hin zu einer Art zu machen von ['shop_id'] ['number_of_products'] Array-Variable, die alle shop_ids aller Produkte speichern würde, dann "unique them" - up und zähle, wie oft ich noch ein shop_id ausschneiden musste, um etwas übrig zu haben, aber das scheint nur so viel nutzloses Scripting.
Wenn Sie eine nette und nette Idee, bitte, lassen Sie mich wissen.
(1) nach Anzahl bedeutet, welcher Parameter nach SELECT zählen soll? – Skuta
Nein, das (1) ist kein Verweis auf irgendeine Spalte, es ist nur der Integer-Wert 1. Es ist typischer, COUNT (*) oder COUNT (Spaltenname) zu verwenden. Glomek verwendet COUNT (1) als konstanten Integer-Wert, da einige Leute glauben, dass dies schneller ist als eine Spalte zu referenzieren. –
Der Optimierer * sollte * darauf achten, dass Zählung (*) genau so lange dauert wie Zählung (1). Ich denke, einige Optimierer nicht. – yfeldblum