我的问题是从表格和组中选择两个字段的最大值。该表非常大,比如50亿条记录,数据排列如下:
LocationNumber | Event | Value
1 | 1 | 10
1 | 2 | 20
1 | 3 | 30
2 | 1 | 20
2 | 2 | 50
我希望输出为
LocationNumber | Event | Value
1 | 3 | 30
2 | 2 | 50
有关于此的任何想法吗?
答案 0 :(得分:3)
只需GROUP BY LocationNumber
并像这样使用MAX
:
SELECT LocationNumber, MAX(Event), Max(value)
FROM tablename
GROUP BY LocationNumber
答案 1 :(得分:0)
请尝试:
select
LocationNumber,
Event,
Value
from(
select
LocationNumber,
Event,
Value,
ROW_NUMBER() over (Partition by LocationNumber order by Event desc, Value desc) RNum
From YourTable
)x where RNum=1
答案 2 :(得分:0)
试
SELECT LocationNumber, MAX(Event), Max(value)
FROM tablename
GROUP BY LocationNumber
答案 3 :(得分:0)
从#tbl中选择位置编号,MAX(事件),MAX(值) 按地点编号分组
这样可行,但我关注的是50亿条记录。它会有效地发挥作用吗?