按日期分组的频率不同值
Frequency distinct values grouped by date
我正在尝试获取去年每个月的唯一 ID 值的频率。但是,我没有得到结果.. 包括错误消息“SELECT 列表表达式引用列 user_id 既未分组也未聚合”。
如何获取每个月的唯一 ID 数量并将它们按月分组?
我尝试了什么:
SELECT
user_id,
EXTRACT(MONTH FROM date) as month
FROM
TABLE
WHERE
date >= '2020-09-01'
GROUP BY
month
我想要这样的东西:
月
独特的计数 user_id
1
300
2
200
...
...
12
250
您将使用 GROUP BY
和 COUNT(DISTINCT)
:
SELECT EXTRACT(MONTH FROM date) as month, COUNT(DISTINCT user_id)
FROM TABLE
WHERE date >= '2020-09-01'
GROUP BY 1;
我建议您在查询中包含年份。在 BigQuery 中,使用 DATE_TRUNC()
:
最简单
SELECT DATE_TRUNC(date, MONTH) as month, COUNT(DISTINCT user_id)
FROM TABLE
WHERE date >= '2020-09-01'
GROUP BY 1;
我正在尝试获取去年每个月的唯一 ID 值的频率。但是,我没有得到结果.. 包括错误消息“SELECT 列表表达式引用列 user_id 既未分组也未聚合”。
如何获取每个月的唯一 ID 数量并将它们按月分组?
我尝试了什么:
SELECT
user_id,
EXTRACT(MONTH FROM date) as month
FROM
TABLE
WHERE
date >= '2020-09-01'
GROUP BY
month
我想要这样的东西:
月 | 独特的计数 user_id |
---|---|
1 | 300 |
2 | 200 |
... | ... |
12 | 250 |
您将使用 GROUP BY
和 COUNT(DISTINCT)
:
SELECT EXTRACT(MONTH FROM date) as month, COUNT(DISTINCT user_id)
FROM TABLE
WHERE date >= '2020-09-01'
GROUP BY 1;
我建议您在查询中包含年份。在 BigQuery 中,使用 DATE_TRUNC()
:
SELECT DATE_TRUNC(date, MONTH) as month, COUNT(DISTINCT user_id)
FROM TABLE
WHERE date >= '2020-09-01'
GROUP BY 1;