每日SQL打卡DAY 23丨学生们参加各科测试的次数难度简单
Posted 不吃西红柿丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日SQL打卡DAY 23丨学生们参加各科测试的次数难度简单相关的知识,希望对你有一定的参考价值。
【未来的你,会感谢今天努力的你】每日两题,一难一易,每天进步一点点,可能会直接导致一场面试的成功,或工作的轻松搞定,从而升职加薪迎娶白富美,加油小伙伴!
🍅举办场地:数据仓库交流群✖️CSDN
🍅题目汇总:https://blog.csdn.net/weixin_39032019/category_11459536.html
🍅发帖打卡:https://bbs.csdn.net/forums/ITID?typeId=18647
🍅加入打卡:https://app.yinxiang.com/fx/13ce6bbd-f36f-4e92-be53-92dd381ed729
难度简单
SQL架构
学生表: Students
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| student_id | int |
| student_name | varchar |
+---------------+---------+
主键为 student_id(学生ID),该表内的每一行都记录有学校一名学生的信息。
科目表: Subjects
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| subject_name | varchar |
+--------------+---------+
主键为 subject_name(科目名称),每一行记录学校的一门科目名称。
考试表: Examinations
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| student_id | int |
| subject_name | varchar |
+--------------+---------+
这张表压根没有主键,可能会有重复行。
学生表里的一个学生修读科目表里的每一门科目,而这张考试表的每一行记录就表示学生表里的某个学生参加了一次科目表里某门科目的测试。
SELECT a.student_id, a.student_name, b.subject_name, COUNT(e.subject_name) AS attended_exams
FROM Students a CROSS JOIN Subjects b
LEFT JOIN Examinations e ON a.student_id = e.student_id AND b.subject_name = e.subject_name
GROUP BY a.student_id, b.subject_name
ORDER BY a.student_id, b.subject_name
CROSS JOIN mysql中没有full outer join hive中可以用
已经有思路?开始打卡吧!
打卡地址:https://bbs.csdn.net/forums/ITID?typeId=18647 右上角【发帖】
添加文末公众号「信息技术智库」:
🍅 硬核资料:领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、前端等。
👇👇技术交流、非诚勿扰👇👇
以上是关于每日SQL打卡DAY 23丨学生们参加各科测试的次数难度简单的主要内容,如果未能解决你的问题,请参考以下文章
每日SQL打卡DAY 10丨换座位难度中等
每日SQL打卡DAY 3丨行程和用户难度困难
每日SQL打卡DAY 2 丨组合两个表难度简单
每日SQL打卡DAY 7丨大的国家难度简单