Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Quais trabalhadores ganham acima do salário médio em seus respectivos departamentos em todas as fábricas?
 ###Tabelas: 
CREATE TABLE factories (factory_id INT, name VARCHAR(20)); CREATE TABLE departments (department_id INT, name VARCHAR(20)); CREATE TABLE workers (worker_id INT, factory_id INT, department_id INT, salary DECIMAL(5,2)); INSERT INTO factories (factory_id, name) VALUES (1, 'factory1'), (2, 'factory2'), (3, 'factory3'); INSERT INTO departments (department_id, name) VALUES (1, 'textiles'), (2, 'metalwork'), (3, 'electronics'); INSERT INTO workers (worker_id, factory_id, department_id, salary) VALUES (1, 1, 1, 35000), (2, 1, 2, 40000), (3, 2, 3, 50000), (4, 3, 1, 60000);
SELECT w.worker_id, w.factory_id, w.department_id, w.salary FROM workers w INNER JOIN (SELECT department_id, AVG(salary) avg_salary FROM workers GROUP BY department_id) d ON w.department_id = d.department_id WHERE w.salary > d.avg_salary;