Dies ist eine SQL-Version des Dashboard-Berichts für Benutzerbesuche und Benutzerbesuche (Mobil).
Dieser Dashboard-Bericht liefert Einblicke in das Benutzerengagement, indem er tägliche Benutzerbesuche verfolgt. Administratoren können die Daten nach Datumsbereich, Gruppenzugehörigkeit und Gerätetyp (mobil oder nicht mobil) filtern.
Das Verständnis der Besuchsmuster von Benutzern kann Administratoren dabei helfen, fundierte Entscheidungen zur Verbesserung des Benutzerengagements und der Community-Gesundheit zu treffen.
-- [params]
-- date :start_date = 2024-01-06
-- date :end_date = 2024-02-07
-- null text :group_name
-- boolean :mobile_views = false
SELECT uv.visited_at AS date,
COUNT(DISTINCT uv.user_id) AS visits_count
FROM user_visits uv
LEFT JOIN group_users gu ON gu.user_id = uv.user_id
LEFT JOIN groups g ON g.id = gu.group_id AND (:group_name IS NULL OR g.name = :group_name)
WHERE uv.visited_at BETWEEN :start_date AND :end_date
AND (:group_name IS NULL OR g.name IS NOT NULL)
AND (:mobile_views = false OR uv.mobile = true)
GROUP BY uv.visited_at
ORDER BY uv.visited_at ASC
Erklärung der SQL-Abfrage
Die SQL-Abfrage wählt Daten aus der Tabelle user_visits aus, die jeden Besuch eines Benutzers auf der Plattform protokolliert. Die Hauptkomponenten der Abfrage werden nachstehend erläutert:
- Parameter
:start_dateund:end_datedefinieren den Datumsbereich für den Bericht. Beide Datumsparameter akzeptieren das DatumsformatJJJJ-MM-TT.:group_nameermöglicht die Filterung nach einem bestimmten Gruppennamen. Wenn nicht angegeben, werden Daten für alle Gruppen einbezogen.:mobile_viewsbestimmt, ob nur Besuche von mobilen Geräten (true) oder alle Besuche (false) einbezogen werden sollen.
- Datenauswahl und Join-Operationen:
- Die Abfrage wählt das Besuchsdatum (
visited_at) aus und zählt eindeutige Benutzer-IDs (user_id), um die Anzahl der eindeutigen Besuche pro Tag zu berechnen. - Sie führt einen
LEFT JOINmit der Tabellegroup_usersdurch, um Benutzerbesuche ihren jeweiligen Gruppen zuzuordnen, gefolgt von einem weiterenLEFT JOINmit der Tabellegroups, um nach dem angegebenen Gruppennamen zu filtern, falls vorhanden.
- Die Abfrage wählt das Besuchsdatum (
- Filterung:
- Die
WHERE-Klausel wendet Filter basierend auf den Eingabeparametern an:- Sie stellt sicher, dass nur Besuche innerhalb des angegebenen Datumsbereichs einbezogen werden.
- Sie filtert nach dem Gruppennamen, falls angegeben, und stellt sicher, dass Besuche für Benutzer gezählt werden, die zu dieser Gruppe gehören.
- Sie schließt nur mobile Besuche ein, wenn der Parameter
:mobile_viewsauftruegesetzt ist.
- Die
- Gruppierung und Sortierung:
- Die Abfrage gruppiert die Ergebnisse nach dem Besuchsdatum (
visited_at), um die Besuchszahlen pro Tag zu aggregieren. - Sie sortiert die Ergebnisse aufsteigend nach Datum und bietet so eine chronologische Ansicht der Benutzerbesuche.
- Die Abfrage gruppiert die Ergebnisse nach dem Besuchsdatum (
Beispielergebnisse
| date | visits_count |
|---|---|
| 2024-01-06 | 67 |
| 2024-01-07 | 71 |
| 2024-01-08 | 88 |
| 2024-01-09 | 79 |
| 2024-01-10 | 78 |
| … | … |