Jay*_*ado 1 sql google-bigquery
我想从这些数据中获取 SQL 数据库中当天注册用户的当前总数:
| userID | date_registered |
| -------- | --------------- |
| 10012 | 2021-03-01 |
| 10043 | 2021-03-01 |
| 10065 | 2021-03-04 |
| 10087 | 2021-03-05 |
| 10091 | 2021-03-05 |
| 10123 | 2021-03-05 |
| 10231 | 2021-03-06 |
| 10421 | 2021-03-09 |
Run Code Online (Sandbox Code Playgroud)
所以对于2021-03-01,目前有2个注册用户。
对于 2021-03-04,目前有 3 个注册用户(包括以前日期的注册用户)
对于 2021-03-05,目前有 6 个注册用户(包括以前日期的注册用户)
等等...
所以预期的结果应该是
| total_user | date |
| ---------- | --------------- |
| 2 | 2021-03-01 |
| 3 | 2021-03-04 |
| 6 | 2021-03-05 |
| 7 | 2021-03-06 |
| 8 | 2021-03-09 |
Run Code Online (Sandbox Code Playgroud)
是否有 SQL 查询可以在 BigQuery 中完成此结果?
非常感谢您的帮助。
在 BigQuery 或任何合理的数据库中,我们可以按日期聚合,然后SUM
用作分析函数:
SELECT
SUM(COUNT(*)) OVER (ORDER BY date_registered) AS total_user,
date_registered AS date
FROM yourTable
GROUP BY
date_registered
ORDER BY
date_registered;
Run Code Online (Sandbox Code Playgroud)
请注意,如果在给定日期可能多次报告同一用户,则使用COUNT(DISTINCT userID)
代替COUNT(*)
。
归档时间: |
|
查看次数: |
36 次 |
最近记录: |