题目描述
统计出当前各个title类型对应的员工当前(to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。
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`));
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
输出描述
title | avg |
---|---|
Engineer | 94409.0 |
Senior Engineer | 69009.2 |
Senior Staff | 91381.0 |
Staff | 72527.0 |
试题详解
连接salaries表和titles表并通过title字段group by,使用AVG聚合函数求均值。代码如下:
SELECT title,AVG(salary) AS avg
FROM salaries AS s,titles AS t
WHERE s.emp_no = t.emp_no
AND s.to_date = '9999-01-01'
AND t.to_date = '9999-01-01'
GROUP BY t.title;