介绍
在本项目中,你将学习如何使用 SQL 查询计算数据库中每个部门的平均工资,并按降序显示结果。
👀 预览
MariaDB [edusys]> SOURCE ~/project/singleTableQuery.sql
+------------+--------------+
| dept_name | avg_salary |
+------------+--------------+
| 物理 | 91000.000000 |
| 金融 | 85000.000000 |
| 电子工程 | 80000.000000 |
| 计算机科学 | 77333.333333 |
| 生物学 | 72000.000000 |
| 历史 | 61000.000000 |
| 音乐 | 40000.000000 |
+------------+--------------+
7 rows in set (0.001 sec)
🎯 任务
在本项目中,你将学习:
- 如何启动 MySQL 服务器并导入数据库
- 如何编写 SQL 查询按部门对数据进行分组并计算平均工资
- 如何根据平均工资按降序对结果进行排序
🏆 成果
完成本项目后,你将能够:
- 理解如何使用 SQL 的
SELECT、FROM、WHERE、GROUP BY和ORDER BY子句进行数据分析 - 实现一个 SQL 查询,以降序计算并显示每个部门的平均工资
- 应用你的 SQL 知识解决实际的数据分析问题
启动 MySQL 并导入数据库
在本步骤中,你将学习如何启动 MySQL 服务器并将 edusys.sql 数据库导入到 MySQL 中。
在你的系统上打开一个终端。
启动 MySQL 服务器:
sudo /etc/init.d/mysql start登录到 MySQL 终端:
mysql -uroot导入
edusys.sql数据库:SOURCE ~/project/edusys.sql
编写 SQL 查询
在本步骤中,你将编写 SQL 查询来计算每个部门的平均工资,并按降序显示结果。
打开一个文本编辑器,并在
~/project目录中创建一个名为singleTableQuery.sql的新文件。将以下 SQL 查询添加到文件中:
SELECT dept_name, AVG(salary) AS avg_salary FROM instructor GROUP BY dept_name ORDER BY avg_salary DESC;此查询将:
- 选择
dept_name和平均工资(AVG(salary))作为avg_salary。 - 按
dept_name对结果进行分组。 - 按
avg_salary降序对结果进行排序。
- 选择
保存
singleTableQuery.sql文件。
运行 SQL 查询
在本步骤中,你将运行在上一步中创建的 SQL 查询。
在 MySQL 终端中,运行以下命令来执行
singleTableQuery.sql脚本:SOURCE ~/project/singleTableQuery.sql查询结果将显示在终端中,按降序显示每个部门的平均工资。
+------------+--------------+ | dept_name | avg_salary | +------------+--------------+ | 物理 | 91000.000000 | | 金融 | 85000.000000 | | 电子工程 | 80000.000000 | | 计算机科学 | 77333.333333 | | 生物学 | 72000.000000 | | 历史 | 61000.000000 | | 音乐 | 40000.000000 | +------------+--------------+ 7 rows in set (0.001 sec)
恭喜!你已通过编写和运行 SQL 查询以降序显示每个部门的平均工资,成功完成了该项目。
总结
恭喜!你已完成本项目。你可以在 LabEx 中练习更多实验以提升你的技能。
