sql - 调用多列时 Hive SQL 不同列语法错误

标签 sql hadoop hive count distinct

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

这是针对带有 hive sql 的 hadoop 环境。使用 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

我希望输出反射(reflect):

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

最佳答案

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

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

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

关于sql - 调用多列时 Hive SQL 不同列语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565168/

相关文章:

amazon-web-services - 在 Looker 中可以进行分页吗?

hadoop - 如何将配置单元与多个用户连接

mysql - 使用多个内连接加速 SQL 查询

hadoop - 如何在 HBase 中预拆分表

mysql - LOAD DATA LOCAL INFILE 特殊情况

hadoop - 没有 Hadoop 的 Spark : Failed to Launch

hadoop 提示尝试覆盖非空目标目录

hadoop - 使用NiFi写入HDFS/Hive

java jdbc ms 访问 "Syntax error in UPDATE statement"

mysql - SQL获取单行中不为零的列