配置中具有多个列的Hive查询并按一列分组

时间:2019-03-20 21:31:17

标签: sql hadoop hive hiveql

我有下面的数据集样本图像和预期结果。在具有十亿条记录的数据集中,实现这种结果的最佳方法是什么。 我们应该使用中间临时表还是1查询。

要求:- 获取表中具有2条以上记录的SN的所有记录,并仅显示价格为100的记录

enter image description here

CREATE TABLE test(
  `sn` string, 
  `itemA` string, 
  `itemB` string, 
  `price` int)

insert into table test values ('1','A','D',100),('1','B','E',100),('1','C','F',200),('2','A','D',100),('2','C','F',200);

1 个答案:

答案 0 :(得分:0)

使用窗口功能:

select t.*
from (select t.*, count(*) over (partition by sn) as cnt
      from test t
     ) t
where cnt > 2 and price = 100;