【发布时间】:2011-09-30 21:07:32
【问题描述】:
我有一张如下所示的表格:
col1 col2 col3
------ ----- -----
A 1 trout
A 2 trout
B 1 bass
C 1 carp
C 2 tuna
D 1 salmon
我真的只想选择 col2 的最大值的行。
我要生成的查询将返回以下内容:
col1 col2 col3
------ ----- -----
A 2 trout
B 1 bass
C 2 tuna
D 1 salmon
我尝试过这样的事情:
select col1, max (col2) as mCol2, col3
from mytable
group by col1, col2
在这种情况下,我得到:
col1 Mcol2 col3
------ ----- -----
A 2 trout
B 1 bass
C 1 carp
C 2 tuna
D 1 salmon
如你所见,我仍然得到C, 1, carp,而我只想要C, 2, tuna。
我考虑过尝试做类似的事情
select col1, col2, col3
from mytable
where
col1-n-col2 in (
select col1, max (col2) as mCol2
from mytable)
group by col1, col2
但我认为这在 SQL 中是不合法的。我错过了什么明显的解决方案?
【问题讨论】:
标签: sql oracle greatest-n-per-group