Синтаксическая ошибка столбца SQL Hive при вызове нескольких столбцов - PullRequest
1 голос
/ 12 июня 2019

После использования предложения WITH и серии внутренних объединений я попытался отозвать три столбца: Employees, SalesID и COUNT (DISTINCT) и обнаружил синтаксическую ошибку.

Это для среды hadoop с hive sql. С помощью SELECT Employees, SalesID, Workload, все соответствующие данные возвращаются; однако проблема синтаксиса возникает при выполнении COUNT (DISTINCT).

Успешные результаты:

SELECT SalesID
, COUNT(DISTINCT workload) AS Cases

GROUP BY SalesID 

Также успешные результаты:

SELECT EmployeeName
    , SalesID
    , Workload AS Cases

ORDER BY SalesID

Синтаксическая ошибка:

SELECT  EmployeeName
    , SalesID
    , COUNT(DISTINCT workload) Cases

GROUP BY SalesID

Я ожидаю, что результат будет отражать:

EmployeeName   | SalesID | Cases
First Last1    | 12345   |   4
First Last2    | 23455   |   2
First Last3    | 45633   |   7

1 Ответ

1 голос
/ 12 июня 2019

Во-первых, ни у одного из ваших запросов нет предложения FROM, поэтому все должны генерировать синтаксические ошибки.

Что еще более важно, списки SELECT и GROUP BY должны совпадать - все неагрегированные столбцы должны быть в GROUP BY:

SELECT  EmployeeName, SalesID, COUNT(DISTINCT workload) as Cases
FROM t
GROUP BY EmployeeName SalesID
...