инструкция:
Для конкретной компании c увеличьте зарплату на 30%, если зарплата меньше, чем в среднем по компании, и увеличьте ее на 10%, если зарплата выше среднее.
В таблицах также есть люди с пустыми значениями.
, поэтому я попытался
with avgs(company_name, salary) as
(select company_name, avg(salary) avgsalary
from work
group by company_name)
select
work.employee_name, work.salary,
case when work.company_name = avgs.company_name and work.salary > avgs.salary then work.salary * 1.3
when work.company_name = avgs.company_name and work.salary < avgs.salary then work.salary * 1.1
when work.company_name is null and work.salary is null then 0
when avgs.company_name is null and avgs.salary is null then 0
end as sal_up
from work, avgs
Требуемый результат - один результат на человека. Когда я запускаю это, я получаю слишком много результатов.
Какое условие неверно? Есть ли что-нибудь, о чем я не думал?