返回

MySQL 50 题大揭秘:征服第 41 至 45 题

人工智能

第 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 过滤和数据比较,你可以从庞大数据集提取有意义的信息,并解决复杂的数据分析问题。