mr_*_*org 1 sql oracle group-by oracle10g
假设我们有下表:
Id A B
1 10 ABC
2 10 ABC
3 10 FFF
4 20 HHH
Run Code Online (Sandbox Code Playgroud)
作为"group by A"表达式的结果,我希望得到最常出现的B-Column的值:
select A, mostoften(B) from table group by A;
A mostoften(B)
10 ABC
20 HHH
Run Code Online (Sandbox Code Playgroud)
我如何在Oracle 10g中实现这一目标?
备注:在平局的情况下(当最常出现多个值时),选择哪个值无关紧要.
select A, B
from (
select A, B, ROW_NUMBER() OVER (PARTITION BY A ORDER BY C_B DESC) as rn
from (
select A, COUNT (B) as C_B, B
from table
group by A, B
) count_table
) order_table
where rn = 1;
Run Code Online (Sandbox Code Playgroud)
你希望Bs的最大COUNT组由A,B组成.
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |