Questão FC372782
Um analista da Secretaria de Estado utiliza uma tabela relacional Processo com as colunas IDProcesso, Ano e Quantidade_ de_Pareceres e pretende ver o total de pareceres de cada pro
Linguagem SQL
FCC · 2024
Um analista da Secretaria de Estado utiliza uma tabela relacional Processo com as colunas IDProcesso, Ano e Quantidade_ de_Pareceres e pretende ver o total de pareceres de cada processo, por ano, em colunas separadas deixando o resultado em um za TabelaAlvo.
Para realizar essa operação no SQL Server, deve.se utilizar o comando
- UNION
- TRANSPOSE
- MERGE
- PIVOT
- JOIN
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
O comando PIVOT no SQL Server realiza a transformação de linhas em colunas, permitindo agregar valores por categorias que viram cabeçalhos de coluna. No caso, ele soma a Quantidade_de_Pareceres por IDProcesso e distribui esses totais em colunas distintas para cada Ano, entregando o resultado na TabelaAlvo.
Funciona em dois passos: primeiro cria-se uma subconsulta com as colunas-chave (IDProcesso, Ano, Quantidade_de_Pareceres); depois aplica-se o PIVOT com uma função de agregação, por exemplo SUM, e a cláusula FOR ... IN para listar os anos que virarão colunas.
Exemplo compacto:
INSERT INTO TabelaAlvo (...) SELECT * FROM (SELECT IDProcesso, Ano, Quantidade_de_Pareceres FROM Processo) AS src PIVOT ( SUM(Quantidade_de_Pareceres) FOR Ano IN ([2022],[2023],[2024]) ) AS pvt;
Conteúdo do catálogo FC Concursos · Atualizado em