我有下面的数据集样本图像和预期结果。在具有十亿条记录的数据集中,实现这种结果的最佳方法是什么。 我们应该使用中间临时表还是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);
答案 0 :(得分:0)
使用窗口功能:
select t.*
from (select t.*, count(*) over (partition by sn) as cnt
from test t
) t
where cnt > 2 and price = 100;