Ich habe zwei Tabellen: Logins und Besuche. Logins
verfolgt Daten, die ein Benutzer an einer Website anmeldet, und die Tabelle visits
verfolgt jeden Benutzer, der eine Website besucht. Ich habe Probleme, die Anzahl der Besucherzahlen zwischen jedes Login-Datum zu bekommen. Zum Beispiel sehen die Tabellen wie folgt aus:So erhalten Sie nicht überlappende Datumsangaben in SQL
Logins
|---------------------|------------------|
| user_id | login_date |
|---------------------|------------------|
| 12 | 2017-09-21 |
|---------------------|------------------|
| 12 | 2017-09-23 |
|---------------------|------------------|
| 149 | 2016-02-07 |
|---------------------|------------------|
Besuche
|---------------------|------------------|
| user_id | visit_date |
|---------------------|------------------|
| 12 | 2017-09-21 |
|---------------------|------------------|
| 12 | 2017-09-21 |
|---------------------|------------------|
| 12 | 2017-09-22 |
|---------------------|------------------|
| 12 | 2017-09-23 |
|---------------------|------------------|
| 12 | 2017-09-24 |
|---------------------|------------------|
| 149 | 2016-02-07 |
|---------------------|------------------|
ich für meine resultierende Tabelle möchte wie folgt aussehen:
|---------------------|------------------|------------------|
| user_id | login_date | visit_counts |
|---------------------|------------------|------------------|
| 12 | 2017-09-21 | 3 |
|---------------------|------------------|------------------|
| 12 | 2017-09-23 | 2 |
|---------------------|------------------|------------------|
| 149 | 2016-02-07 | 1 |
|---------------------|------------------|------------------|
Derzeit I bin beitreten beide Tabellen und eine count(visits.event_date)
, wo die on
Zustand aussieht e dies:
on visits.event_date <= logins.event_date
Dies führt jedoch in visit_counts = 5
für user_id = 12
wenn login_date is 2017-09-23
bc es auch um die Termine zu 2017.09.23 vor inklusive ist.
Postgres oder Bienenstock? tag nur eins. –