Wöchentliche/Monatliche/Jährliche Anmeldungen

:memo: Diese Abfragen geben eine Aufschlüsselung, wie viele neue Benutzerkonten innerhalb des Zeitrahmens erstellt wurden, ausgenommen gestufte und nicht aktivierte Konten. Die Summen sind aufgeschlüsselt nach der Anzahl der Anmeldungen pro Woche/Monat/Jahr, einer laufenden Summe für den ausgewählten Zeitraum und einer Gesamtsumme bis heute, die alle vorherigen Anmeldungen enthält.

Hinweis: Wenn ein Benutzer gelöscht wird, erscheinen seine Aufzeichnungen nicht mehr in der Datenbank und werden daher nicht mehr in den Abfrageergebnissen aufgeführt. Dies kann zu Abweichungen führen, wenn aktuelle Ausführungen mit früheren verglichen werden.

Wöchentliche Anmeldungen

-- [params]
-- date :start_date
-- date :end_date

WITH weekly_signups AS (

SELECT
    to_char(date_trunc('week', created_at)::date,'YYYY-MM-DD') AS week,
    COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
  AND staged = false
  AND active = true
GROUP BY week
),

all_to_date AS (

SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
  AND staged = false
  AND active = true

)

SELECT
    week AS "Wochenbeginn",
    signups AS "Wöchentliche Anmeldungen",
    SUM(signups::int) OVER (ORDER BY week) AS "Laufende Summe",
    (SUM(signups::int) OVER (ORDER BY week) + previous::int) AS "Gesamtsumme"
FROM weekly_signups, all_to_date
ORDER BY week ASC
Wochenbeginn Wöchentliche Anmeldungen Laufende Summe Gesamtsumme
2023-07-31 98 98 45418
2023-08-07 141 239 45559
2023-08-14 129 368 45688
2023-08-21 126 494 45814
2023-08-28 138 632 45952
2023-09-04 53 685 46005

Monatliche Anmeldungen

-- [params]
-- date :start_date
-- date :end_date

WITH monthly_signups AS (
SELECT
    date_trunc('month', created_at)::date AS month,
    to_char(date_trunc('month', created_at)::date,'Month YYYY') AS month_display,
    COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
  AND staged = false
  AND active = true
GROUP BY month, month_display
),

all_to_date AS (
SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
  AND staged = false
  AND active = true
)

SELECT
    month_display AS "Monat",
    signups AS "Monatliche Anmeldungen",
    SUM(signups::int) OVER (ORDER BY month) AS "Laufende Summe",
    (SUM(signups::int) OVER (ORDER BY month) + previous::int) AS "Gesamtsumme"
FROM monthly_signups, all_to_date
ORDER BY month
Monat Monatliche Anmeldungen Laufende Summe Gesamtsumme
Juni 2023 596 596 44790
Juli 2023 517 1113 45307
August 2023 583 1696 45890
September 2023 102 1798 46005

Jährliche Anmeldungen

-- [params]
-- date :start_date
-- date :end_date

WITH yearly_signups AS (

SELECT
    to_char(date_trunc('year', created_at)::date,'YYYY') AS year,
    COUNT(*) AS signups
FROM users
WHERE created_at::date BETWEEN :start_date::date AND :end_date::date
  AND staged = false
  AND active = true
GROUP BY year
),

all_to_date AS (

SELECT COUNT(*) AS previous
FROM users
WHERE created_at::date < :start_date
  AND staged = false
  AND active = true

)

SELECT
    year AS "Jahr",
    signups AS "Jährliche Anmeldungen",
    SUM(signups::int) OVER (ORDER BY year) AS "Laufende Summe",
    (SUM(signups::int) OVER (ORDER BY year) + previous::int) AS "Gesamtsumme"
FROM yearly_signups, all_to_date
ORDER BY year ASC
Jahr Jährliche Anmeldungen Laufende Summe Gesamtsumme
2019 3590 3590 23135
2020 4258 7848 27393
2021 5908 13756 33301
2022 7889 21645 41190
2023 4815 26460 46005
10 „Gefällt mir“

Hallo, entschuldigen Sie, dass ich so schwerfällig bin, wie das hier funktioniert, aber wie sieht eines dieser Beispiele aus, wenn die Daten ausgefüllt sind?

Ich bin mir nicht sicher, was Sie meinen? Gibt es darunter ein Beispiel für die Ergebnisse, falls Sie danach suchen?

1 „Gefällt mir“

Verstanden.

Hier ist, was ich fragen möchte: Wo im Code selbst gebe ich mein Start- und Enddatum ein und in welchem Format schreibe ich es?

[quote=“Carson, post:5, topic:278119, username:outofthebox”]
Wo im Code selbst gebe ich mein Start- und Enddatum ein?
[/quote]Das musst du nicht, da es Eingabefelder über der Schaltfläche zum Ausführen der Abfrage hinzufügen sollte (wenn nicht, aktualisiere nach dem Speichern, und sie werden angezeigt), dann

[quote=“Carson, post:5, topic:278119, username:outofthebox”]
und in welchem Format schreibe ich es?
[/quote]Ich glaube, es wird dir einfach eine Datumsauswahl geben.

2 „Gefällt mir“

Ja, das ist ein bekanntes Problem, bei dem die Eingabefelder für Parameter beim ersten Mal erst nach einem Seiten-Refresh angezeigt werden.

Es ist noch nicht ganz ausgefeilt genug, um einen Datums-Picker zu haben (obwohl man hoffen kann :slight_smile: :crossed_fingers:), aber ich denke, er ist ziemlich fehlertolerant, was das Format angeht. Ich verwende das britische Datumsformat (z. B. 21.01.2024), wenn ich es selbst benutze, aber wenn ich Screenshot-Beispiele teile, versuche ich, mich an z. B. 2024-01-21 zu halten, da dies universeller ist.

3 „Gefällt mir“

Verstanden. Danke. Ich brauchte das Seiten-Refresh.

1 „Gefällt mir“