题目描述
有一个员工职称表 titles 简况如下:
有一个薪水表 salaries 简况如下:
建表语句如下:
-- titles 表
CREATE TABLE titles (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
-- salaries 表
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
请你统计出各个 title 类型对应的员工薪水对应的平均工资 avg。结果给出 title 以及平均工资 avg,并且以 avg 升序排序,上述示例查询结果如下:
答案解析
本题考查知识点:
- SQL 内置函数
AVG()
求平均值 - 内连接
- GROUP BY 分组
本题比较简单,就不再赘述思路了,SQL 语句如下:
SELECT t.title,AVG(s.salary)
FROM titles AS t
INNER JOIN salaries AS s
ON t.emp_no = s.emp_no
GROUP BY t.title
ORDER BY AVG(s.salary) ASC;