Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在黑斑羚身上不能使用have_Sql_Select_Group By_Impala_Having Clause - Fatal编程技术网

Sql 在黑斑羚身上不能使用have

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) >

在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) > 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;