我在 hive 里有一张table table1
. 我正在使用impala从表中获取数据
table1
------
name, amount
表的值是
test1, 10
test1, 15
test1, 30
test2, 30
test2, 40
test2, 50
test3, 30
test3, 40
test3, 50
现在我必须从表1中获取数据,这样,它就可以为所有人获取数据
name (test1, test2, test3) but gives only top 2 records based on amount for each name
.
Can it possible in IMPALa or even in MYSQL?
提前谢谢
3条答案
按热度按时间bxjv4tth1#
我很难理解你的问题,但如果我理解正确的话,你是想按名字列出所有金额。如果是这样的话,在mysql中,这非常简单:
这将为每个名称提供一行,其中包含与该名称相关联的所有金额。
7jmck4yq2#
你可以用
regexp_extract
以获得连接数量的限制。{1,1}
会给你前2名。{1,49}
会给你前50名,等等。例如(前2名):
uujelgoq3#
如果您使用的是impala 2.0或更高版本,则可以使用分析函数来完成此任务:
如果必须使用mysql,那么似乎可以使用用户定义的变量来伪造窗口函数,如关于stackoverflow的另一个问题所示。