Código: Selecionar todos
CREATE TABLE funcionarios (
id_funcionario INTEGER PRIMARY KEY,
nome VARCHAR(100),
departamento VARCHAR(100),
salario NUMERIC(10,2)
);
INSERT INTO funcionarios (id_funcionario, nome, departamento, salario)
VALUES
(1, 'João Silva', 'TI', 5000.00),
(2, 'Maria Oliveira', 'RH', 4500.00),
(3, 'Ana Santos', 'TI', 6000.00),
(4, 'Pedro Souza', 'Financeiro', 5500.00),
(5, 'Carla Costa', 'RH', 4800.00);
Código: Selecionar todos
SELECT DISTINCT departamento FROM funcionarios;
Código: Selecionar todos
SELECT departamento, COUNT(*) AS num_funcionarios FROM funcionarios GROUP BY departamento;
Código: Selecionar todos
SELECT departamento, AVG(salario) AS media_salarial FROM funcionarios GROUP BY departamento;
Código: Selecionar todos
SELECT departamento, AVG(salario) AS media_salarial FROM funcionarios GROUP BY departamento HAVING AVG(salario) > 5000;
Código: Selecionar todos
SELECT departamento, SUM(salario) AS soma_salarial FROM funcionarios GROUP BY departamento HAVING SUM(salario) > 10000;
Código: Selecionar todos
SELECT departamento FROM funcionarios GROUP BY departamento HAVING MAX(salario) <= 6000;
Código: Selecionar todos
SELECT departamento, COUNT(*) AS num_funcionarios_acima_5000 FROM funcionarios WHERE salario > 5000 GROUP BY departamento;
Código: Selecionar todos
SELECT departamento FROM funcionarios GROUP BY departamento ORDER BY COUNT(*) DESC LIMIT 1;
Código: Selecionar todos
SELECT f.departamento, f.nome, f.salario
FROM funcionarios f
INNER JOIN (
SELECT departamento, MAX(salario) AS max_salario
FROM funcionarios
GROUP BY departamento
) AS max_salarios
ON f.departamento = max_salarios.departamento
AND f.salario = max_salarios.max_salario;
Código: Selecionar todos
SELECT departamento
FROM funcionarios
GROUP BY departamento
ORDER BY AVG(salario) ASC
LIMIT 1;