Hive Query 在 Select 中具有多列并按一列分组
Posted
技术标签:
【中文标题】Hive Query 在 Select 中具有多列并按一列分组【英文标题】:Hive Query with multiple Columns in Select and group by one column 【发布时间】:2019-03-20 21:31:17 【问题描述】:我有下面的数据集示例图像和预期结果。在具有十亿条记录的数据集中实现这种结果的最佳方法是什么? 我们应该使用中间临时表还是在 1 个查询中。
要求:- 获取表中超过 2 条记录的 SN 的所有记录,只显示价格为 100 的记录
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】:使用窗口函数:
select t.*
from (select t.*, count(*) over (partition by sn) as cnt
from test t
) t
where cnt > 2 and price = 100;
【讨论】:
以上是关于Hive Query 在 Select 中具有多列并按一列分组的主要内容,如果未能解决你的问题,请参考以下文章
.csv 不是 Select Hive Query 上的 SequenceFile 错误
Spark-SQL 是不是支持使用 regex 规范的 Hive Select All Query with except Columns
Presto on Search of normal select query[non partitioned hive table]给出列$path在数据库默认表<Table>中不存在