Sql 在黑斑羚身上不能使用have
在impala sql中使用“having”时,出现了一个错误“无法解析列/字段引用” 我不知道为什么,黑斑羚文件支持Sql 在黑斑羚身上不能使用have,sql,select,group-by,impala,having-clause,Sql,Select,Group By,Impala,Having Clause,在impala sql中使用“having”时,出现了一个错误“无法解析列/字段引用” 我不知道为什么,黑斑羚文件支持 很少有数据库支持重用having子句中的select中定义的别名(我想到了MySQL)。我不认为这属于标准的ANSI SQL 在大多数其他数据库(如黑斑羚)中,需要重复以下表达式: select count(dst_ip) as times, dst_ip from test_mode group by dst_ip having count(dst_ip) >
很少有数据库支持重用
having
子句中的select
中定义的别名(我想到了MySQL)。我不认为这属于标准的ANSI SQL
在大多数其他数据库(如黑斑羚)中,需要重复以下表达式:
select count(dst_ip) as times, dst_ip
from test_mode
group by dst_ip
having count(dst_ip) > 1
检查您的impala版本,移动到上面的目录并找到正确的文档。 例如,ApacheImpala指南(Impala-3.4.pdf)在
Impala别名概述中说:
从Impala 3.0开始,GROUP BY、HAVING和ORDER BY子句中的别名替换逻辑与标准SQL行为更加一致,如下所示。别名现在只在顶级合法,在子表达式中不合法。允许以下陈述:
不允许有以下声明:
在您的sql中,times>1
是一个子表达式,在Impala 3.0或更高版本中,具有times>1
是不可接受的
select count(dst_ip) as times, dst_ip
from test_mode
group by dst_ip
having count(dst_ip) > 1
SELECT int_col / 2 AS x FROM t GROUP BY x;
SELECT int_col / 2 AS x FROM t ORDER BY x;
SELECT NOT bool_col AS nb FROM t GROUP BY nb HAVING nb;
SELECT int_col / 2 AS x FROM t GROUP BY x / 2;
SELECT int_col / 2 AS x FROM t ORDER BY -x;
SELECT int_col / 2 AS x FROM t GROUP BY x HAVING x > 3;