首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

怎么取分组后符合条件的记录?

2011-12-20 
如何取分组后符合条件的记录???表table1有3个字段a,b,c,表内容如下:12a13b14c25d26e27f31g其中a字段可能重

如何取分组后符合条件的记录???
表table1有3个字段a,b,c,表内容如下:
1     2     'a '
1     3     'b '
1     4     'c '
2     5     'd '
2     6     'e '
2     7     'f '
3     1     'g '

其中a字段可能重复
现在要得到内容是
1     4     'c '
2     7     'f '
3     1     'g '

即在第一个字段相同时,取第二个字段中最大的那些记录
select   a,max(b),c   from   table1   group   by   a
不合法.

请问这样的sql如何写?   thanks.

[解决办法]
select t1.a,t1.b,t1.c
from table1 t1
inner join
(seelct a,max(b) as b from table1 group by a) t2
on t1.a=t2.a and t1.b=t2.b

[解决办法]
select distinct t1.a,t1.b,t1.c
from table1 t1,
(select a,max(b) as b from table1 group by a) t2
where t1.a =t 2.a and t1.b = t2.b

[解决办法]
两个都对
[解决办法]
select a,b,c
from(
select a,b,c
,row_number()over(partition by a order by b desc) rn
from table1
)
where rn=1


这样可能更快些!
[解决办法]
up,来晚了。

热点排行