今天分享一道面试题!如下:
- 有一个录取学生人数表,记录的是每年录取学生人数和入学学生的学制
以下是表结构:
CREATE TABLE `admit` ( |
year表示学生入学年度
num表示对应年度录取学生人数
stu_len表示录取学生的学制
说明:例如录取年度2018学制3,表示该批学生在校年份为2018~2019、2019~2020、2020~2021
根据以上示例计算出每年在校人数,写出SQL语句:
思路:1.先提取一张去重好的年份表,sql: select distinct year from admit
2.然后和admit进行关联,关联条件:当前year的值到学年制最后一年的数据
3.跟着根据year进行分组求和
SELECT year.year, SUM(t_admit.num) AS stu_sum
FROM (
SELECT DISTINCT year
FROM admit
) AS year
JOIN admit AS t_admit ON
year.year BETWEEN t_admit.year AND t_admit.year + t_admit.stu_len - 1
GROUP BY year.year;
执行结果:
感谢各位的观看,创作不易,能不能给哥们来一个点赞呢!!!
好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!
私信,评论我呗!!!!!!
关注我下一篇不迷路哦!