Это мой первый пост. надеюсь понятно буду :)
Пытаюсь запустить на импале (используя Hue) следующий запрос во 2 версии.
Версия 1 (сгруппировать по 1):
SELECT payment_method,
(CASE WHEN price <= 1000 AND country = 'israel' THEN (price+50+0.18*price)/count(Distinct payment_token)/100
WHEN price <= 1000 AND country <> 'israel' THEN (price+50)/count(Distinct payment_token)/100
WHEN price > 1000 AND country = 'israel' THEN (price+0.05*price+0.18*price)/100
ELSE (price+0.05*price)/count(Distinct payment_token)/100
END) as ASP
FROM traffic_db.traffic_parq
WHERE year = 2016 AND month = 1
Group by 1
Error 1: AnalysisException: select list expression not produced by aggregation output (missing from GROUP BY clause?): CASE WHEN price... (rest of case when statment)
Версия 2 (группа по 1,2):
SELECT payment_method,
(CASE WHEN price <= 1000 AND country = 'israel' THEN (price+50+0.18*price)/count(Distinct payment_token)/100
WHEN price <= 1000 AND country <> 'israel' THEN (price+50)/count(Distinct payment_token)/100
WHEN price > 1000 AND country = 'israel' THEN (price+0.05*price+0.18*price)/100
ELSE (price+0.05*price)/count(Distinct payment_token)/100
END) as ASP
FROM traffic_db.traffic_parq
WHERE year = 2016 AND month = 1
Group by 1,2
Error: AnalysisException: GROUP BY expression must not contain aggregate functions: 2
Я не знаю, в чем проблема. ПРИМЕЧАНИЕ. Если я запускаю оператор CASE-WHEN
с невычисленными значениями - он работает нормально (когда я группирую также по оператору case-when).
Кто-нибудь сталкивался с такой проблемой?