[英]Sum case when like then
我在 BigQuery 上使用数据集,基本上我想拉一个表来显示特定年份每月销售的总升数。 这是我目前写的:
SELECT
SUM( CASE WHEN `date` LIKE '2012-01-%' THEN `volume_sold_liters` END) as Jan_Total
FROM `personal-projects-340200.Iowa_liquor_cedar_rapids.store_3`
这是我也收到的错误消息:
参数类型的 LIKE 运算符没有匹配的签名:DATE、STRING。 支持的签名:STRING LIKE STRING; [2:16] 的字节类似字节
我知道错误消息要求我将字符串更改为日期,但我该怎么做? 我想将同一个月的多个日期加在一起。 我尝试将日期切换为字符串,结果在我的表中得到 NULL。
我究竟做错了什么? go关于拉我想要的桌子有没有更好的方法?
您可以根据自己的情况使用 BigQuery 提供的专用日期函数。 由于您想要购买日期的月份部分,您可以考虑类似下面的查询
SELECT
SUM(CASE
WHEN DATE_TRUNC(purchase_date, MONTH) = '2022-01-01' THEN volume
ELSE 0
END
) AS Jan_Total
FROM
`personal-projects-340200.Iowa_liquor_cedar_rapids.store_3`
您得到的错误是因为您尝试将 DATE 与 STRING 进行比较。 要解决这个问题,您可以拨打 go
SELECT
SUM(CASE
WHEN CAST(purchase_date AS STRING) LIKE '2022-01-%' THEN volume
ELSE 0
END
) AS Jan_Total
FROM
`personal-projects-340200.Iowa_liquor_cedar_rapids.store_3`
但是在操作日期时最好使用日期函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.