SQL Server中如何分组查询最大值
在这个表中有这些数据T_nameT_numclasscodeyy1111yy2222yy3555uu1111uu2222ii1111ii2222ii3333oo1111o...
在这个表中有这些数据
T_name T_num classcode
yy 1 111
yy 2 222
yy 3 555
uu 1 111
uu 2 222
ii 1 111
ii 2 222
ii 3 333
oo 1 111
oo 2 555
oo 3 222
oo 4 333
想用这条语句:
SELECT * FROM templet GROUP BY T_name HAVING MAX(t_num)
得到这个结果:
T_name T_num classcode
yy 3 555
uu 2 222
ii 3 333
oo 4 333
但总是出错哪们高手能指点一下
这个问题就是得到这个表中安"T_name"列分组后提取“T_num”列最大值的所有列的信息 展开
T_name T_num classcode
yy 1 111
yy 2 222
yy 3 555
uu 1 111
uu 2 222
ii 1 111
ii 2 222
ii 3 333
oo 1 111
oo 2 555
oo 3 222
oo 4 333
想用这条语句:
SELECT * FROM templet GROUP BY T_name HAVING MAX(t_num)
得到这个结果:
T_name T_num classcode
yy 3 555
uu 2 222
ii 3 333
oo 4 333
但总是出错哪们高手能指点一下
这个问题就是得到这个表中安"T_name"列分组后提取“T_num”列最大值的所有列的信息 展开
6个回答
展开全部
SQL> with a as (select 1 a,0 b,'c1' c,'d1' d from dual
2 union
3 select 1 a,1 b,'c2' c,'d2' d from dual
4 union
5 select 1 a,3 b,'c3' c,'d3' d from dual
6 union
7 select 4 a,0 b,'c4' c,'d4' d from dual
8 union
9 select 5 a,1 b,'c5' c,'d5' d from dual
10 union
11 select 5 a,2 b,'c6' c,'d6' d from dual
12 union
13 select 6 a,1 b,'c7' c,'d7' d from dual
14 union
15 select 6 a,4 b,'c8' c,'d8' d from dual
16 )
17 SELECT A,B,C,D FROM
18 (select A,B,C,D,ROW_NUMBER()OVER(PARTITION BY A ORDER BY A,B DESC) RN from A)
19 WHERE RN=1
20 /
A B C D
---------- ---------- -- --
1 3 c3 d3
4 0 c4 d4
5 2 c6 d6
6 4 c8 d8
SQL>
2 union
3 select 1 a,1 b,'c2' c,'d2' d from dual
4 union
5 select 1 a,3 b,'c3' c,'d3' d from dual
6 union
7 select 4 a,0 b,'c4' c,'d4' d from dual
8 union
9 select 5 a,1 b,'c5' c,'d5' d from dual
10 union
11 select 5 a,2 b,'c6' c,'d6' d from dual
12 union
13 select 6 a,1 b,'c7' c,'d7' d from dual
14 union
15 select 6 a,4 b,'c8' c,'d8' d from dual
16 )
17 SELECT A,B,C,D FROM
18 (select A,B,C,D,ROW_NUMBER()OVER(PARTITION BY A ORDER BY A,B DESC) RN from A)
19 WHERE RN=1
20 /
A B C D
---------- ---------- -- --
1 3 c3 d3
4 0 c4 d4
5 2 c6 d6
6 4 c8 d8
SQL>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
select * from templet where t_num in (SELECT MAX(t_num) FROM templet GROUP BY T_name)
要显示所有的 要利用到子查询
要显示所有的 要利用到子查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
你这样肯定会出错哟
SELECT T_name,MAX(t_num) FROM templet GROUP BY T_name
这样弄看看
SELECT T_name,MAX(t_num) FROM templet GROUP BY T_name
这样弄看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
SELECT top1 FROM templet GROUP BY T_name ORDER BY MAX(t_num) HAVING MAX(t_num);
试一下!~
试一下!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-11
展开全部
select name,sum(T_num) as t_num,sum(classcode) as classcode from templet group by name
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询