oracle語句中的聚合函數以及分組group by的使用實例

 

 1 create table t_class2(
 2   name varchar2(255), 
 3   subject varchar2(255), 
 4   score integer, 
 5   stuid integer
 6 )
 7 
 8 insert into t_class2 values('張三','數學',89,1);
 9 insert into t_class2 values('張三','語文',80,1);
10 insert into t_class2 values('張三','英語',70,1);
11 
12 
13 insert into t_class2 values('李四','數學',90,2);
14 insert into t_class2 values('李四','語文',70,2);
15 insert into t_class2 values('李四','英語',80,2);
16 
17 select * from t_class2
18 
19 
20 --計算每一個人的總成績並排名  desc降序排列  sum()聚合函數求總
21 select name, sum(score) sumscore  from t_class2 group by name order by sumscore desc
22 
23 
24 --計算每個人的平均成績 avg()聚合函數求平均值
25 select name, avg(score) avgscore  from t_class2 group by name
26 
27 
28 --計算每一個人的單科最高成績 max()聚合函數求最大值
29 select name,max(score) maxscore from t_class2 group by name
30 
31 
32 --列出每一科成績最好的學生
33 
34 select c2.name, c2.subject,c2.score from t_class2 c2  ,
35 ( select subject,  max(score) maxscore from t_class2 group by subject) c1
36 where c2.subject=c1.subject and c2.score=c1.maxscore
相關文章
相關標籤/搜索