У меня есть две таблицы SQL. Первая называется «сотрудники» и содержит имена сотрудников, уникальные идентификаторы сотрудников и названия отделов компании.
Образец:
id name department
1 robert engineering
2 muhammad sales
3 john engineering
4 steve engineering
5 recardo engineering
6 ariel human-resource
7 lena human-resource
8 lucy customer-service
9 barbara testing
10 eli testing
Второй называется зарплата. Он содержит одинаковые имена сотрудников и идентичные идентификаторы сотрудников - и зарплаты для каждого сотрудника.
Пример:
emp_id emp_name salary
1 robert 100
2 muhammad 100
3 john 200
4 steve 200
5 recardo 250
6 riel 250
7 lena 300
8 lucy 100
9 barbara 280
10 eli 265
В компании 10 сотрудников, поэтому в обеих таблицах по 10 строк.
Как напечатать каждый отдел, в котором средняя зарплата на одного сотрудника ниже, чем203 доллара?
DDL и одна и та же скрипка
CREATE TABLE `employee` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`department` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `employee` (`id`, `name`, `department`) VALUES
(1, 'robert', 'engineering'),
(2, 'muhammad', 'sales'),
(3, 'john', 'engineering'),
(4, 'steve', 'engineering'),
(5, 'recardo', 'engineering'),
(6, 'ariel', 'human-resource'),
(7, 'lena', 'human-resource'),
(8, 'lucy', 'customer-service'),
(9, 'barbara', 'testing'),
(10, 'eli', 'testing');
CREATE TABLE `salaries` (
`emp_id` int(11) NOT NULL,
`emp_name` varchar(200) NOT NULL,
`salary` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `salaries` (`emp_id`, `emp_name`, `salary`) VALUES
(1, 'robert', 100),
(2, 'muhammad', 100),
(3, 'john', 200),
(4, 'steve', 200),
(5, 'recardo', 250),
(6, 'riel', 250),
(7, 'lena', 300),
(8, 'lucy', 100),
(9, 'barbara', 280),
(10, 'eli', 265);
http://sqlfiddle.com/#!9/1c33f0/2/1