Teradata SQL CASE WHEN — SELECT Ошибка. 3771: Недопустимое выражение в предложении WHEN выражения CASE

Я пытаюсь сгруппировать данные по разным периодам времени, и мне это не удается. Я хотел бы назвать эти периоды времени «онбордингом» и «в жизни», но Тердата мне не позволяет. Кто-нибудь знает, почему он продолжает кричать, что мой пункт 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'
;

ПОЖАЛУЙСТА ПОМОГИТЕ

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы комбинируете простые и поисковые операторы 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'
...

Другие вопросы по теме