gpt4 book ai didi

hadoop - Hive QL - 限制每个项目的行数

转载 作者:可可西里 更新时间:2023-11-01 14:13:57 27 4
gpt4 key购买 nike

如果我在 where 子句中列出了多个项目,如何将列表中每个项目的结果限制为 N?

例如:

select a_id,b,c, count(*), as sumrequests
from table_name
where
a_id in (1,2,3)
group by a_id,b,c
limit 10000

最佳答案

听起来你的问题是获取每个 a_id 的前 N ​​个。您可以使用 Hive 11 中引入的窗口函数来执行此操作。类似于:

SELECT a_id, b, c, count(*) as sumrequests
FROM (
SELECT a_id, b, c, row_number() over (Partition BY a_id) as row
FROM table_name
) rs
WHERE row <= 10000
AND a_id in (1, 2, 3)
GROUP BY a_id, b, c;

这将为每个 a_id 输出最多 10,000 个随机选择的行。如果您不只是希望按 a_id 进行分组,则可以进一步对其进行分区。您还可以在窗口函数中使用 order by,那里有很多示例可以显示其他选项。

关于hadoop - Hive QL - 限制每个项目的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750312/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com