Hive SQL 调用多列时出现不同的列语法错误

Hive SQL Distinct Column Syntax Error when calling multiple columns

在使用 WITH 子句和一系列内部联接后,我试图回调三列:Employees、SalesID 和 COUNT(DISTINCT),但遇到语法错误。

这适用于带有配置单元 sql 的 hadoop 环境。使用 SELECT 员工、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

首先,您的 none 个查询有一个 FROM 子句,因此所有查询都应该产生语法错误。

更重要的是,SELECTGROUP BY 列表应该匹配——所有未聚合的列都应该在 GROUP BY:

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