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
子句,因此所有查询都应该产生语法错误。
更重要的是,SELECT
和 GROUP BY
列表应该匹配——所有未聚合的列都应该在 GROUP BY
:
SELECT EmployeeName, SalesID, COUNT(DISTINCT workload) as Cases
FROM t
GROUP BY EmployeeName SalesID
在使用 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
子句,因此所有查询都应该产生语法错误。
更重要的是,SELECT
和 GROUP BY
列表应该匹配——所有未聚合的列都应该在 GROUP BY
:
SELECT EmployeeName, SalesID, COUNT(DISTINCT workload) as Cases
FROM t
GROUP BY EmployeeName SalesID