Wie bekomme ich die DAU und MAU Daten getrennt?

Ja, Sie können den Benutzerbesuchsbericht verwenden, um den MAU zu berechnen.

Die unten stehende Abfrage beschreibt DAU, MAU und den Prozentsatz. Ich hoffe, sie hilft Ihnen weiter.

--[params]
-- date :start_date = 2021-01-01
-- date :end_date = 2022-01-01


WITH dau AS (
SELECT date_trunc('day', user_visits.visited_at)::DATE AS date,
       count(distinct user_visits.user_id) AS dau
FROM user_visits
WHERE user_visits.visited_at::DATE BETWEEN :start_date AND :end_date
GROUP BY date_trunc('day', user_visits.visited_at)::DATE
ORDER BY date_trunc('day', user_visits.visited_at)::DATE
),

data AS (SELECT
    date,
    dau,
    (SELECT count(distinct user_visits.user_id)
      FROM user_visits
      WHERE user_visits.visited_at::DATE BETWEEN dau.date - 29 AND dau.date
    ) AS mau
FROM dau)

SELECT
    date "day",
    dau,
    mau,
    ROUND((dau/mau::numeric)*100,2)||'%'  AS Percent
FROM DATA
day dau mau percent
2021-01-01 300 2500 12.00%
2021-01-02 350 3000 11.66%
2021-01-03 400 3500 11.42%