有这样一个问题,关于培训班学生的统计分析数据,一起来看看吧。

有三张表:
- t1为学生课程表:sid(学生ID)、courseid(课程ID)、date(报课时间)
- t2为学生基本信息表:sid、name、age……
- t3为课程基本信息表:courseid、price、date
现在想要查看一个培训学校目前每个学生的所报的所有课程数和花费的总金额,如何求呢?1
2
3
4
5
6
7
8
9
10select
sid,
count(courseid) over(partition by sid) as count,
sum(price) over(partition by sid) as sumprice
from (
select
sid, t1.courseid as courseid, price
from t1, t3
where t1.courseid = t3.courseid
) a;
分析:
首先关联出学生所报课程的价格;
1
2
3
4select
sid, t1.courseid as courseid, price
from t1, t3
where t1.courseid = t3.courseid使用开窗函数对sid分组得到学生报的每门课程和没门课程对应的价格,然后使用count和sum求得想要的指标;
I wish i had two dogs, one would be given to my parents, one would be with me.
书山有路勤为径,学海无涯苦作舟。
一起学习,一起进步。