返回

深入理解 MySQL 经典习题:21-25 题剖析

人工智能

MySQL 超经典 50 题 - 第 21 到 25 题详解

MySQL作为一款备受青睐的关系型数据库管理系统,为数据处理和管理提供了强大的支持。为了帮助大家巩固对 MySQL 的掌握,本文将深入解析 MySQL 超经典 50 题中的第 21 到 25 题,涵盖分组统计求和、百分比、排序、having 使用和 union 拼接等知识点,助您成为 MySQL 高手。

第 21 题:分组统计求和

SELECT deptno, SUM(sal) AS total_salary
FROM emp
GROUP BY deptno;

这道题考察的是分组统计求和的功能。它首先将员工表 emp 按部门编号 deptno 进行分组,然后计算每个部门的总薪资,并以部门编号和总薪资为两列的形式输出结果。

第 22 题:百分比

SELECT deptno,
       (SUM(sal) / (SELECT SUM(sal) FROM emp)) * 100 AS salary_percentage
FROM emp
GROUP BY deptno;

这道题考察的是百分比的计算。它首先将员工表 emp 按部门编号 deptno 进行分组,然后计算每个部门的薪资总和,并除以所有员工的薪资总和,最后乘以 100% 来得到每个部门薪资所占的百分比。

第 23 题:排序

SELECT *
FROM emp
ORDER BY sal DESC;

这道题考察的是排序的功能。它将员工表 emp 中的所有记录按薪资 sal 降序排列,并输出结果。

第 24 题:having 使用

SELECT deptno, COUNT(*) AS employee_count
FROM emp
GROUP BY deptno
HAVING COUNT(*) > 5;

这道题考察的是 having 子句的使用。它首先将员工表 emp 按部门编号 deptno 进行分组,并统计每个部门的员工人数,然后使用 having 子句筛选出员工人数大于 5 的部门,最后输出结果。

第 25 题:union 拼接

SELECT * FROM emp
UNION
SELECT * FROM emp_archive;

这道题考察的是 union 操作符的使用。它将员工表 emp 和员工档案表 emp_archive 中的所有记录合并到一起,并输出结果。

通过对这 5 道题的解析,希望能够帮助大家巩固对 MySQL 的掌握。要成为一名合格的 MySQL 开发人员,需要不断练习和积累经验,才能游刃有余地处理各种数据处理任务。