如何获得hive中每个组的前n个计数

mec1mxoz  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(370)

有如下格式的数据

url                    |    ip
-----------------------+-----------------
http://aaa.com/        |    1.1.1.1
http://bbb.com/        |    1.2.3.5
http://ccc.com/        |    1.1.1.6
http://ddd.com/        |    1.2.3.4
http://ccc.com/        |    1.1.1.2
http://ccc.com/        |    1.1.1.2
http://ccc.com/        |    1.1.1.2
http://aaa.com/        |    1.1.1.1
http://bbb.com/        |    1.2.3.5

我现在试图计算ip列,这是前n ip在每个组的网址。喜欢

url                    |    ip           |    ipcount
-----------------------+-----------------+-----------------
http://aaa.com/        |    1.1.1.1      |    2
http://aaa.com/        |    5.6.7.8      |    1
http://bbb.com/        |    1.2.3.5      |    2
http://ccc.com/        |    1.1.1.2      |    3
http://ccc.com/        |    1.1.1.6      |    1
http://ddd.com/        |    1.2.3.4      |    1

请告诉我如何编写一个hql来在hive中实现这个功能?
更新:对不起,我忘了注意到,我应该得到前n名的记录在每个组像。。。

fnx2tebb

fnx2tebb1#

尝试: SELECT url, ip, COUNT(url) FROM tbl GROUP BY url, ip

lstz6jyr

lstz6jyr2#

SELECT url, ip, count(*) as ipcount
from table t
group by url, ip

这对你来说应该有用。

相关问题