Enunciado
Considere a seguinte tabela Funcionarios em um banco de dados relacional de funcionários de uma empresa.
CREATE TABLE Funcionarios (
id INT PRIMARY KEY,
nome VARCHAR(100),
salario DECIMAL(10, 2),
departamento VARCHAR(50)
);
Considere, ainda, que os seguintes dados sejam inseridos nessa tabela.
INSERT INTO Funcionarios (id, nome, salario, departamento) VALUES
(1, 'Ana', 3000.00, 'Vendas'),
(2, 'Bruno', 4500.00, 'TI'),
(3, 'Carlos', 3500.00, 'Vendas'),
(4, 'Diana', 5000.00, 'TI'),
(5, 'Elena', 4000.00, 'Financeiro');
A partir dessas informações, assinale a opção que corresponde à consulta SQL que retorna o nome do funcionário (ou funcionários, se houver empate) com o maior salário por departamento.
Alternativas
- A
SELECT f1.departamento, f1.nome, f1.salario FROM Funcionarios f1 WHERE f1.salario = ( SELECT MAX(f2.salario) FROM Funcionarios f2 GROUP BY f2.departamento HAVING f2.departamento = f1.departamento );
- B
SELECT f1.departamento, f1.nome, f1.salario FROM Funcionarios f1 WHERE f1.salario = ( SELECT MAX(f2.salario) FROM Funcionarios f2 );
- C
SELECT f1.departamento, f1.nome, f1.salario FROM Funcionarios f1 WHERE f1.salario = ( SELECT MAX(f2.salario) FROM Funcionarios f2 WHERE f2.departamento = f1.departamento );
- D
SELECT departamento, nome, MAX(salario) FROM Funcionarios GROUP BY departamento;
- E
SELECT f1.departamento, f1.nome, f1.salario FROM Funcionarios f1 WHERE f1.salario = ( SELECT MAX(f2.salario) FROM Funcionarios f2 GROUP BY f2.departamento );
Gabarito e comentário disponíveis apenas dentro do Mentorito.
Faça login para ver a explicação completa do mentor.