可以将HAVING语句与子查询(Hive)进行比较吗?

时间:2019-04-05 20:09:13

标签: hive subquery versioning

TPC Benchmark DS (TPC-DS)(位于hive-testbench存储库中)是一个基准,可让您测试Hive查询的性能。该存储库中的许多查询都显示了Hive的功能。 TPC-DS存储库中的查询之一是调用 HAVING子句将其(>)比较为子查询(恰好是一条选择语句)的查询。

select 'web' channel, i_brand_id,i_class_id,i_category_id, sum(ws_quantity*ws_list_price) sales , count(*) number_sales
       from web_sales
           ,item
           ,date_dim
       where ws_item_sk in (select ss_item_sk from cross_items)
         and ws_item_sk = i_item_sk
         and ws_sold_date_sk = d_date_sk
         and d_year = 1998+2
         and d_moy = 11
       group by i_brand_id,i_class_id,i_category_id
       having sum(ws_quantity*ws_list_price) > (select average_sales from avg_sales)

当我尝试使用包含HAVING语句,聚合和将聚合与子查询比较的比较器的示例来复制此功能时,编译器会抱怨。

SELECT sum(c) FROM table_name GROUP BY a HAVING sum(c) > (SELECT a from another_table WHERE c=26)

我的示例查询返回的错误:

FAILED: ParseException line 1:55 cannot recognize input near '(' 'SELECT' 'a' in expression specification

Hive 3是否仅支持此功能(我在Hive 2.2.0上运行)?我似乎找不到关于Confluence的任何文档,明确说明了这一点

谢谢

0 个答案:

没有答案