我试图通过不同的时间段对数据进行分组,但我做不到。我想把这些时间段命名为“入职”和“生活中”,但Terdata不让我这么做。有人知道为什么我的when子句是非法的吗?
SELECT
CASE
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE))
WHEN
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) > 0
AND
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) < 3 then 'onboarding'
WHEN
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) > 3
AND
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) < 18 then 'in-life'
else 'eop'
END AS life_cycle,
COUNT (*) Number_of_contracts
FROM
VT_DM_CUMULATIVE_EXT.mobile_events
GROUP BY
life_cycle
WHERE
business_dt='2020-11-30'
;
请帮帮忙
发布于 2020-12-16 02:40:05
您正在组合简单的case语句和搜索到的case语句。去掉第一个MONTHS_BETWEEN子句。
SELECT
CASE
WHEN
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) > 0
AND
MONTHS_BETWEEN (business_dt, CAST(LOYALITY_START_DATE_CRM AS DATE)) < 3 then 'onboarding'
...
https://stackoverflow.com/questions/65311693
复制相似问题