Ein Kunde hat Bestellungen und jede Bestellung von einem Typ 1 oder Typ 2. Ich möchte zählen, wie oft jeder Typ aufgetreten ist vor jeder Bestellung.Anzahl der Bestellungen eines bestimmten Typs vor jeder Bestellung
Zum Beispiel für einen Kunden:
customer | orders| Type
---------+-------------
customerA| Order1| 1
customerA| Order2| 1
CustomerA| Order3| 2
customerA| Order1| 1
customerA| Order2| 2
customerA| Order3| 2
CustomerA| Order1| 1
customerA| Order2| 2
Erforderliche Ergebnisse:
customer | orders| Type| Nr_typ1| Nr_typ2
---------+-------+-----+--------+-------
customerA| Order1| 1 | 0 | 0
customerA| Order2| 1 | 1 | 0
CustomerA| Order3| 2 | 2 | 0
customerA| Order1| 1 | 2 | 1
customerA| Order2| 2 | 3 | 1
customerA| Order3| 2 | 3 | 2
CustomerA| Order1| 1 | 3 | 3
customerA| Order2| 2 | 4 | 3
, was ich versuchte, war:
select t.customer, t.orders, t.type, sum(t.type1), sum(t.type2) from
(select customer, orders, type,
case type = 1 then 1 else 0 end as type1,
case type = 2 then 1 else 0 end as type2
from table customer_orders) t group by customer, orders, type
würden Anregungen Higgly geschätzt! Danke
Damien 'REIHEN ZWISCHEN UNBOUNDED PRECEDING UND CURRENT REIHE 'Ich habe keine Ahnung, dass das existiert. Kannst du mich bitte Referenzhandbuch dazu beziehen? Vielen Dank! – Sai
@Sai - bereits aus der Antwort im ersten Satz verknüpft. Leider ist es eine ziemlich lange Seite, aber wenn Sie nach "UNBOUNDED" suchen, sollte Sie ungefähr den richtigen Teil des Dokuments erreichen. –
Vielen Dank. es ist sehr interessant. Hav hat heute etwas sehr Neues gelernt. – Sai