如何在Data Studio中用CASE语句创建周六至周五的自定义年度周?
解决Data Studio自定义周六起始年度周的问题
先修正你的CASE语句语法错误
你遇到的语法错误是因为后续分支的条件前漏掉了WHEN关键字,CASE语句完全支持多分支(适配多周),修正后的代码如下:
CASE WHEN date BETWEEN DATE(2022,07,30) AND DATE(2022,08,05) THEN "WEEK 29" WHEN date BETWEEN DATE(2022,08,06) AND DATE(2022,08,12) THEN "WEEK 30" WHEN date BETWEEN DATE(2022,08,13) AND DATE(2022,08,19) THEN "WEEK 31" ELSE NULL END
解答你的两个疑问
CASE语句可以适配多周:CASE支持任意数量的WHEN分支,你之前的问题只是语法错误,不是功能限制。
更简便的自定义年度周方法:手动写每个日期区间效率极低,推荐通过日期计算自动生成周标签:
假设你的年度周从**指定周六(比如2022年第一个目标周六DATE(2022,1,1))**开始,用以下公式自动计算周数:"WEEK " || CAST(FLOOR(DATE_DIFF(date, DATE(2022, 1, 1), DAY) / 7) + 1 AS STRING)如果你需要调整周的起始基准日,只需要修改
DATE(2022,1,1)为你的年度第一个周六即可。另外,如果需要对齐自然周但调整起始为周六,可以通过日期偏移实现:
"WEEK " || CAST(WEEK(DATE_ADD(date, INTERVAL 1 DAY)) AS STRING)解释:
DATE_ADD(date, INTERVAL 1 DAY)将原日期加1天,让周六被识别为下一周的周日,从而把周六到周五的区间归为同一周,再用WEEK函数获取周数。
内容的提问来源于stack exchange,提问作者Francis
相关产品推荐
相关产品推荐

