oracle 求班級平均分


 

select * from (

select
class 班級,
subject,
avg(grade) avg_grade
from student_score 
group by class,subject

pivot (sum(avg_grade) for subject in ('語文', '數學','英語')) order by 班級 asc

 

求班級平均分
select 學科,平均分 別名 from 表
where class="121"
就是group by 班級,平均分

 1.121班的平均分

 

 2.行轉列

 由於2的結果並沒有班級這個字段,'121' 班級 湊字段(湊維度)

t121.*就是子查詢。 查詢t121表的所有字段

3.湊維度

4.聯合查詢union

 

 

 

 最終代碼:

select '121' 班級,t121.* from (
select * from(
select subject,avg(grade) avg_grade from student_score
where class="121"
group by class,subject
)
pivot (sum(avg_grade) for subject in ('語文', '數學','英語'))
)t121
union
select '122' 班級,t122.* from (
select * from (
select subject,avg(grade) avg_grade from student_score
where class="122"
group by class,subject
)
pivot (sum(avg_grade) for subject in ('語文', '數學','英語'))
)t122

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM