versucht, nach der Antwort zu suchen, lesen Beiträge wie diese: SQL Self-join with data comparison for different days aber nicht in der Lage, ganz zu verstehen, wie dies in diesem Szenario funktionieren würde.ist es möglich, sich selbst zu verbinden, um nach anderen Daten zu fragen?
Würde mich über jede Hilfe freuen;
Ich habe eine Tabelle mit einem
- UserID (Zahl)
Usertype (string, zeigt, wenn sie Mitglied oder Gast)
sales_date (Zeitstempel-Feld)
- (plus andere Spalten wie das, was sie gekauft haben und die Kosten für Artikel, an denen ich momentan nicht interessiert bin)
Ich versuche eine Abfrage zu schreiben, die mir sagen wird, wie viele Leute pro Monat zwischen einem Mitglied und einem Gast waren. So kann ich Fragen beantworten wie "Wie viele Leute waren hier im September und kamen im Oktober zurück?" "Wie viele Leute waren Mitglieder im September, wurden aber im Oktober zu Gästen degradiert?" "Wie viele Leute waren Gäste im September, aber im Oktober wurden sie Mitglieder?"
1: Ist Self-Join der Weg zu gehen, wenn Sie für zwei verschiedene Zeiträume aus der gleichen Tabelle/derselben Abfrage fragen müssen?
2: Ich denke, ich muss für UserID, dann UserType für Sept vs UserType für Oktober fragen. Klingt das richtig? Nicht sicher, wie man nach 2 verschiedenen Daten fragt
SELECT
t1.UserID,
t1.UserType as UserTypeSept,
t2.UserType as UserTypeOct
FROM
my_table t1
join my_table t2
on t1.UserID = t2.UserID
AND t2.day > '2015-01-01' AND t2.day < '2015-02-01'
where
t1.day >'2015-02-01' AND t1.day <'2015-03-01'
;
Denke ich entlang der richtigen Spuren? Auch wenn dies funktioniert, wird es mir nicht sagen, wie viele von „Mitgliedern“ auf „Gäste“ von September bis Oktober geändert, aber zumindest zeigt ihre Werte in zwei verschiedenen Spalten
dank
Welche DBMS verwenden Sie? –
google bigquery – Bjorn
Wichtig auf SO, können Sie akzeptierte Antwort markieren, indem Sie das Häkchen auf der linken Seite der veröffentlichten Antwort, unterhalb der Abstimmung. Siehe http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235, warum dies wichtig ist. –