【问题标题】:Combining two queries with case statement in BigQuery在 BigQuery 中将两个查询与 case 语句相结合
【发布时间】:2021-07-29 18:44:55
【问题描述】:

我是 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;

生成的表格如下所示:

Row weekday member_total casual_total
1 1 null 330529
2 1 308760 null
3 2 null 188687
4 2 316228 null
5 3 330656 null
6 3 null 174799

等等……

我可以看到这可能与我按“工作日”“会员休闲”分组的事实有关,但是如果从 GROUP BY 语句中删除“会员休闲”,我会收到错误消息。我尝试过使用 CASE IF 语句,但还没有找到解决方案。

【问题讨论】:

    标签: sql google-bigquery


    【解决方案1】:

    你想要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;
    

    【讨论】:

    • 成功了!谢谢你。我将如何添加两列,分别代表休闲和会员的每周日平均值?
    • @JeffHenry 。 . .您应该以 questions 而不是 cmets 的形式提出新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2022-12-06
    • 2020-08-03
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    相关资源
    最近更新 更多