Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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 使用Impala的共轭查询_Sql_Cloudera_Impala - Fatal编程技术网

Sql 使用Impala的共轭查询

Sql 使用Impala的共轭查询,sql,cloudera,impala,Sql,Cloudera,Impala,考虑两个表,评级和产品,它们有一些列。我正在尝试使用 SELECT AVG(r.rating), COUNT(p.prod_id) FROM ratings as r, products as p; 我将其保存为script.impala,并使用impala shell-f script.impala运行。我得到以下信息: [user@localhost]$impala shell-f script.impala *咕哝* 查询:选择平均值(r.rating), 计数(p.prod\U id)

考虑两个表,
评级
产品
,它们有一些列。我正在尝试使用

SELECT AVG(r.rating), COUNT(p.prod_id) FROM ratings as r, products as p;
我将其保存为
script.impala
,并使用
impala shell-f script.impala
运行。我得到以下信息:

[user@localhost]$impala shell-f script.impala
*咕哝*
查询:选择平均值(r.rating),
计数(p.prod\U id)
从评级为r,
作为p的产品
错误:NotImplementedException:“r”和“p”之间的联接要求两个表之间至少有一个连接相等谓词
无法执行命令:选择平均值(r.rating),
计数(p.prod\U id)
从评级为r,
作为p的产品

我在数据库中找不到有关此类查询的信息。此查询的正确语法是什么?两者在单独的语句中都能完美地工作

黑斑羚的版本是黑斑羚外壳v1.0(d1bf0d1),建立于2013年4月28日15:33:52太平洋夏令时。我知道它非常旧,但我无法更改。

切勿在
FROM
子句中使用逗号。始终使用正确、明确的
JOIN
语法。在您的情况下,您有一个查询。这个怎么样

select r.avg_rating), p.cnt_products
from (select avg(r.rating) as avg_rating from ratings r) cross join
     (select count(*) as cnt_products from products p);

您的查询措辞无论如何都会返回非感官结果。例如,它将返回两个表中行数的乘积。

您没有为所涉及的表指定连接条件。。这将导致交叉连接。我认为在Impala中不允许不指定连接条件。错误信息很清楚。你能给我一个连接条件的例子吗?我不明白这个错误