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中不允许不指定连接条件。错误信息很清楚。你能给我一个连接条件的例子吗?我不明白这个错误