sql - 在 BigQuery 中将两个查询与 case 语句相结合
问题描述
我是 SQL 新手,一直在尝试组合两个查询,按星期几('weekday' - 星期几编码 1-7)和用户类型('member_casual' - 会员或临时用户)。我设法使用 case 语句将它们组合到一个表中,并使用以下查询:
SELECT weekday,
CASE WHEN member_casual = 'member' THEN COUNT (*) END AS member_total,
CASE WHEN member_casual = 'casual' THEN COUNT (*) END AS casual_total,
FROM
`case-study-319921.2020_2021_Trip_Data.2020_2021_Rides_Merged`
GROUP BY weekday, member_casual;
生成一个如下所示的表:
排 | 工作日 | member_total | 休闲总计 |
---|---|---|---|
1 | 1 | 无效的 | 330529 |
2 | 1 | 308760 | 无效的 |
3 | 2 | 无效的 | 188687 |
4 | 2 | 316228 | 无效的 |
5 | 3 | 330656 | 无效的 |
6 | 3 | 无效的 | 174799 |
ETC...
我可以看到这可能与我按“工作日”和“会员休闲”分组的事实有关,但是如果从 GROUP BY 语句中删除“会员休闲”,我会收到错误消息。我试图改用 CASE IF 语句,但还没有找到解决方案。
解决方案
你想要countif()
:
SELECT weekday,
COUNTIF(member_casual = 'member') AS member_total,
COUNTIF(member_casual = 'casual') AS casual_total,
FROM`case-study-319921.2020_2021_Trip_Data.2020_2021_Rides_Merged`
GROUP BY weekday;
推荐阅读
- android - 如何在手机上的 GLES 中绘制一个大的空心钻石?
- ssl - 如何生成符合 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 的 JKS 密钥库(服务器端)文件?
- python - Keras Regularizer 类:获取原始模型
- react-native - 为什么世博会热重载有时会在没有明显原因的情况下发生?
- dart - 为什么枚举可以成为飞镖中的类型参数?
- linux - 如何在文件注入中使用 ipa-getcert
- python - 类型错误:序列项 0:预期的 str 实例,找到 builtin_function_or_method
- javascript - 从javascript中的深层嵌套依赖promise返回给调用者
- dask - 在工作人员上调用 .delayed()
- video-streaming - 从实时视频流中提取音频