Impala Fehler: AnalysisException: wählen Sie Liste Ausdruck nicht erzeugt durch aggregation Ausgang (fehlt die GROUP BY-Klausel?):

Dies ist mein Erster Beitrag. hoffe, ich werde klar sein 🙂

Ich versuche zu laufen impala (mit Farbton), wird die nächste Abfrage in der 2 version.

Version 1 (Gruppe 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)

Version 2 (group by 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

Ich weiß nicht, was das problem zu sein.
HINWEIS: Wenn ich eine CASE-WHEN Aussage mit nicht-berechnete Werte - es funktioniert gut (wenn ich das group by auch durch den case-when-Anweisung).

Hat jemand auf diese Art ein problem?

InformationsquelleAutor shayms8 | 2016-02-07
Schreibe einen Kommentar