Найдите среднюю зарплату сотрудников, исключив максимальную и минимальную зарплаты.
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`)
);
SELECT AVG(salary) AS avg_salary FROM salaries s WHERE to_date = '9999-01-01' AND salary NOT IN (SELECT MIN(salary) FROM salaries WHERE s.to_date = '9999-01-01') AND salary NOT IN (SELECT MAX(salary) FROM salaries WHERE s.to_date = '9999-01-01')
Используйте функции MAX и MIN для получения максимальной и минимальной зарплат, а затем используйте NOT IN для исключения этих значений при вычислении средней зарплаты.
SELECT MAX(salary) FROM salaries WHERE s.to_date = '9999-01-01';
SELECT MIN(salary) FROM salaries WHERE s.to_date = '9999-01-01';
SELECT * FROM salaries WHERE to_date = '9999-01-01' AND salary NOT IN (SELECT MAX(salary) FROM salaries WHERE s.to_date = '9999-01-01') AND salary NOT IN (SELECT MIN(salary) FROM salaries WHERE s.to_date = '9999-01-01');
SELECT AVG(salary) FROM t1;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )