2016-04-01 10 views
0

Ich habe eine Tabelle, die Artikel von unserer Shopping-Site bestellt hat. Jede Zeile hat eine Artikelnummer und die zugehörige Wagennummer. So kann jeder Einkaufswagennummer eine oder mehrere Artikelnummern zugeordnet werden. Wir wollen die Top 4-5 Artikel herausfinden, die normalerweise mit einem bestimmten Artikel bestellt werden. Wie Sie auf den großen Seiten wie Amazon usw. sehen würden, frage ich mich, ob es eine Abfrage gibt, die ich ausführen kann, die eine Tabelle mit genau diesen Daten darin erstellen wird. Oder müsste ich in der Programmierung (C#, etc) tun. Die neue Tabelle hätte wahrscheinlich 5 Spalten. Die erste Spalte würde die Hauptartikelnummer und dann 4 weitere Spalten der am häufigsten bestellten Positionsnummern sein. Wenn das überhaupt möglich ist, stelle ich mir vor, dass es sich um eine komplizierte Abfrage handelt, also muss ich hier nichts einfügen, um zu zeigen, was ich angefangen habe.Gesamtmengen von einer Tabelle in eine neue Tabelle

Hier ist ein Ausschnitt der Tabelle mit den relevanten Daten. Gibt es weitere Informationen, die benötigt werden?

enter image description here

Und hier ist ein SQL Fiddle: http://sqlfiddle.com/#!9/b88417/1

+0

Dies ist auf jeden Fall möglich, und Sie müssten dafür keine Tabelle erstellen. Sie können eine Abfrage erstellen, die dies abruft. aber Sie müssen uns mehr Informationen geben und auch zeigen, was Sie versucht haben. – Jester

+0

Hinzugefügt Ausschnitt der Tabelle. Ich kann ehrlich sagen, dass das so weit ist, wie ich es bekommen habe, weil ich nicht weiß, wie ich das machen würde. – dmikester1

Antwort

1

Ich denke, das könnte funktionieren, wenn Sie eine SQL-Geige machen könnte, es könnte zu Test einfacher sein:

SELECT s1.itemRef, 
     s2.itemRef, 
     COUNT(s2.itemRef) AS count_items 
FROM `cart_numbers` AS s1 
JOIN `cart_numbers` AS s2 ON s2.cartNumber = s1.cartNumber 
WHERE s2.itemref != s1.itemref 
AND s1.cartNumber = 129009 
GROUP BY s2.itemRef 
ORDER BY COUNT(s2.itemRef) DESC 
LIMIT 5 

Aktualisierte Abfrage, dies wird maximal 5 Produkte abrufen, die oft mit einem Produkt im Einkaufswagen

gekauft werden
+0

Dies ist eine große Hilfe. Ich habe SQL Fiddle vergessen. Hier sind meine Daten mit Ihrer Anfrage: http://sqlfiddle.com/#!9/b88417/1 Aber es zeigt nicht die zugehörigen Artikelnummern mit jedem Artikel. – dmikester1

+0

Ich brauche die ursprüngliche itemRef und dann 4 weitere itemRefs für die 4 am häufigsten zusammen gekauft Artikel in jeder Zeile. – dmikester1

+0

meine Abfrage ist eigentlich ein bisschen falsch, arbeite jetzt daran. (müssen Sie zuerst 20 Minuten fahren) Möchten Sie die Artikel basierend auf einem Einkaufswagen oder basierend auf einem einzelnen Artikel? – Jester

0
Select itemRef, count(*) as bought 
from Orders 
where itemRef <> @item and cartNumber in 
(select cartNumber from Orders where itemRef = @item) 
group by itemRef 
order by count(*) desc 
+0

Dies ergibt 0 Ergebnisse: http://sqlfiddle.com/#!9/b88417/2 – dmikester1

Verwandte Themen