【发布时间】:2019-05-30 17:27:52
【问题描述】:
了解 CASE WHEN,当我在 Analytics 中看到多个区域设置代码时,我遇到了一个用例。这是一个更简单的问题,比我之前发布的问题更容易回答和阅读。
示例如下: en-us(英语美国) en-au(澳大利亚英语) en-br(英语巴西) es-es(西班牙西班牙) es-419(西班牙拉坦) pt-br(巴西葡萄牙语) pt-pt(葡萄牙)
如何在 BigQuery 中汇总这些值,以便计算仅找到区域设置的前两个字符的次数,而不是计算不同的值?
这个问题的第二部分是:如何构建我的表格,以便我能够按日期绘制这些计数?
目前,输出为: 日期:语言代码:CombinedLocale
示例数据表链接:https://docs.google.com/spreadsheets/d/1XZp1nhNZySWI39kKhb3ydYYIImmrfAMcGJDS6ASThqg/edit?usp=sharing
我试过了:
SELECT date, COUNT(language_code),
CASE
WHEN language_code like '%af%' THEN 'AF'
WHEN language_code like '%en%' THEN 'EN'
WHEN language_code like '%ar%' THEN 'AR'
WHEN language_code like '%ba%' THEN 'BA'
ELSE "Others"
END AS CombinedLocale
FROM date_locales
还有:
Select date, COUNT(language_code)
FROM date_locales
WHERE CASE
WHEN language_code like '%af%' THEN 'AF'
WHEN language_code like '%en%' THEN 'EN'
WHEN language_code like '%ar%' THEN 'AR'
WHEN language_code like '%ba%' THEN 'BA'
ELSE "Others"
END
这是我的工作代码:
SELECT date, language_code,
CASE
WHEN language_code like '%af%' THEN 'AF'
WHEN language_code like '%en%' THEN 'EN'
WHEN language_code like '%ar%' THEN 'AR'
WHEN language_code like '%ba%' THEN 'BA'
ELSE "Others"
END AS CombinedLocale
FROM date_locales
我希望结果会随着时间的推移显示 CombinedLocale 表的计数,如下所示:
1 月 AF 3 1 月 5 日 2 月 5 日 2 月 EN 6 三月 EN 2 三月 EN 3但我收到一条错误消息: SELECT 列表表达式引用既不分组也不聚合的列日期(行:1,列:8)
我认为我需要先将日期汇总到月份?我的印象是 BigQuery 与 DataStudio 的集成会自动聚合日期列。
【问题讨论】:
标签: sql count google-bigquery case case-when