题目描述

有一个员工职称表 titles 简况如下:

统计出当前各个title类型对应的员工当前薪水对应的平均工资 - 图1

有一个薪水表 salaries 简况如下:

统计出当前各个title类型对应的员工当前薪水对应的平均工资 - 图2

建表语句如下:

  1. -- titles
  2. CREATE TABLE titles (
  3. `emp_no` int(11) NOT NULL,
  4. `title` varchar(50) NOT NULL,
  5. `from_date` date NOT NULL,
  6. `to_date` date DEFAULT NULL);
  7. -- salaries
  8. CREATE TABLE `salaries` (
  9. `emp_no` int(11) NOT NULL,
  10. `salary` int(11) NOT NULL,
  11. `from_date` date NOT NULL,
  12. `to_date` date NOT NULL,
  13. PRIMARY KEY (`emp_no`,`from_date`));

请你统计出各个 title 类型对应的员工薪水对应的平均工资 avg。结果给出 title 以及平均工资 avg,并且以 avg 升序排序,上述示例查询结果如下:

统计出当前各个title类型对应的员工当前薪水对应的平均工资 - 图3

答案解析

本题考查知识点:

  • SQL 内置函数 AVG() 求平均值
  • 内连接
  • GROUP BY 分组

本题比较简单,就不再赘述思路了,SQL 语句如下:

  1. SELECT t.title,AVG(s.salary)
  2. FROM titles AS t
  3. INNER JOIN salaries AS s
  4. ON t.emp_no = s.emp_no
  5. GROUP BY t.title
  6. ORDER BY AVG(s.salary) ASC;