高手帮忙---取得表中最大数据的sql语句
数据表
a int
b int
c int
例如
a b c
1 1 10
1 2 3
2 1 2
3 1 78
3 2 34
3 4 21
现在我要写sql语句,根据每个字段a的b的最大值,列出字段a的c值
即想得出的结果为
a b c
1 2 3
2 1 2
3 4 21
请教大哥帮忙
问题点数:0、回复次数:8Top
1 楼poolnet()回复于 2005-06-03 09:41:51 得分 0
select a,max(b),max(c) from tablename group by aTop
2 楼lirlir(hgug)回复于 2005-06-03 09:46:05 得分 0
poolnet,c不是max(c),是max(b)的值!你那样子不行的Top
3 楼poolnet()回复于 2005-06-03 09:48:24 得分 0
max(b)就是b取大啊,max(c)就是c取大啊如果C存在重复,有何不对
select a,max(b) as b,max(c) as c from tablename group by a
Top
4 楼guanjm(坚持到底)回复于 2005-06-03 09:49:02 得分 0
select a.* from tablename a
inner join
(
select a,max(b) as b from tablename group by a
) b
on b.a=a.a and b.b=a.b
这样就可以了Top
5 楼poolnet()回复于 2005-06-03 09:49:55 得分 0
是我错了,呵呵Top
6 楼yjdn(人形机器)回复于 2005-06-03 09:52:40 得分 0
select a,max(b),(select c from tn where a=a.a and b=max(a.b)) from tn a group by aTop
7 楼yjdn(人形机器)回复于 2005-06-03 09:53:58 得分 0
--建表
create table tn(a int, b int, c int)
insert into tn select 1 , 1 , 10
union all select
1 , 2 , 3
union all select
2 , 1 , 2
union all select
3 ,1 , 78
union all select
3 ,2 , 34
union all select
3 ,4 , 21
--查询
select a,max(b),(select c from tn where a=a.a and b=max(a.b)) from tn a group by a
结果
1 2 3
2 1 2
3 4 21
Top
8 楼lirlir(hgug)回复于 2005-06-03 10:29:54 得分 0
谢谢,解决Top




