我有一個登錄的 SQL 表作為資料源,每一行都有一個 id、時間戳和 user_id。
與此類似:
| ID | 時間戳 | 用戶身份 |
|---|---|---|
| 1 | 2022-01-01T15:17:13.000Z | 234 |
| 2 | 2022-01-02T15:17:13.000Z | 235 |
我想構建一個按年份顯示登錄匯總的報告。所以類似(所有月份,僅以一月為例。):
| 年 | 一月活躍用戶 | 一月登錄 |
|---|---|---|
| 2019 | 500 | 10000 |
| 2020 | 600 | 10002 |
本質上,活動用戶將按 user_id 對登錄行進行分組,而登錄只會按月聚合時間戳。
這種視圖是我使用 SQL 查詢構建的嗎?
uj5u.com熱心網友回復:
您可以在這里使用聚合:
SELECT
YEAR(timestamp) AS Year,
COUNT(DISTINCT user_id) AS `Active Users in January`,
COUNT(*) AS `Logins in January`
FROM yourTable
WHERE
MONTH(timestamp) = 1
GROUP BY
YEAR(timestamp);
活躍用戶數由給定年份(1 月份)的不同用戶數給出。登錄數只是一月份給定年份的條目數。
如果要報告所有月份和所有年份,請使用:
SELECT
DATE_FORMAT(timestamp, '%Y-%m') AS ym,
COUNT(DISTINCT user_id) AS `Active Users per month`,
COUNT(*) AS `Logins in month`
FROM yourTable
GROUP BY 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407950.html
標籤:
上一篇:分頁下一頁重繪相同的資料
