返回
MySQL 50 题大揭秘:征服第 41 至 45 题
人工智能
2023-12-26 01:39:38
第 41 题:找出前 2 名学生
SELECT student_name
FROM students
ORDER BY gpa DESC
LIMIT 2;
第 42 题:分组排序 + HAVING 过滤
SELECT course_name
FROM student_courses
GROUP BY course_name
HAVING COUNT(*) > 2;
第 43 题:过滤 5 个以上的查询
SELECT student_name
FROM students
WHERE num_courses >= 5;
第 44 题:找出不同课程成绩相同的学生
SELECT student1.student_name, student2.student_name
FROM students AS student1
JOIN students AS student2
ON student1.student_id <> student2.student_id
WHERE student1.course_id <> student2.course_id
AND student1.grade = student2.grade;
第 45 题:比较信息
SELECT student1.student_name, student2.student_name
FROM students AS student1
JOIN students AS student2
ON student1.student_id <> student2.student_id
WHERE student1.gpa > student2.gpa;
剖析
第 41 题: 使用 ORDER BY
子句根据 gpa
列降序排序,并使用 LIMIT 2
子句仅获取前 2 名学生。
第 42 题: 使用 GROUP BY
子句对 course_name
列进行分组,使用 HAVING
子句过滤仅包含 2 个以上记录的分组。
第 43 题: 使用 WHERE
子句过滤仅包含 5 个或以上课程的学生。
第 44 题: 使用 JOIN
子句连接 students
表的两个实例,使用 ON
子句过滤不同课程和成绩相同的学生。
第 45 题: 使用 JOIN
子句连接 students
表的两个实例,使用 ON
子句过滤 gpa
列中较高的学生。
总结
掌握这些高级 MySQL 查询技巧,将显着提升你的数据处理能力。通过表连接、分组排序、HAVING 过滤和数据比较,你可以从庞大数据集提取有意义的信息,并解决复杂的数据分析问题。