Как удалить те кортежи из приведенной таблицы, где зарплата инструктора меньше средней зарплаты соответствующего отдела?

0

Схема таблицы такова:

INSTRUCTOR
__________
ID primary key,
salary,
dept_name

Я хочу удалить такие кортежи, у которых зарплата меньше средней, чем их соответствующий отдел. Как реализовать этот запрос в SQL?

  • 0
    «Как удалить те кортежи из приведенной таблицы, где зарплата инструктора меньше средней зарплаты соответствующего отдела?» Легко: вычислите среднюю сумму на каждого преподавателя для каждого отдела, а затем найдите отдельных преподавателей, у которых зарплата меньше, чем в среднем по отделу.
  • 0
    Я получил понятие, но не смог отразить его в запросе SQL
Теги:
datatable

1 ответ

0
Лучший ответ

Вы можете попробовать это так

Сначала получите идентификатор корреспондента, который имеет зарплату ниже среднего по каждому подразделению

 Select ID from INSTRUCTOR a 
 Join 
 (Select dept_name, AVG(salary) avg_salary from INSTRUCTOR Group By dept_name) b 
 on a.dept_name = b.dept_name
 Where a.salary < b.avg_salary)

Затем вы можете удалить их, добавив еще один подзапрос

Delete From INSTRUCTOR Where ID In(
//Query Above//)
  • 0
    Вау, я никогда не думал о "присоединиться". Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню