Published on

December 2, 2008

Compreendendo Conceitos do SQL Server: Agregando Dados

Agregação de dados é uma tarefa comum no SQL Server, especialmente ao lidar com grandes conjuntos de dados. Neste artigo, exploraremos diferentes abordagens para agregar dados usando T-SQL.

Vamos considerar um cenário em que temos uma tabela chamada StudentsEnroll com três colunas: Class1, Class2 e Class3. Cada coluna representa o número de alunos matriculados em uma determinada turma. Nosso objetivo é calcular o número total de alunos em cada turma.

Uma abordagem para resolver esse problema é usar um cursor. O cursor nos permite iterar sobre cada linha na tabela e realizar cálculos. Aqui está um exemplo:

DECLARE @Class1 INT, @Class2 INT, @Class3 INT, @Class1Total INT, @Class2Total INT, @Class3Total INT
SET @Class1Total = 0
SET @Class2Total = 0
SET @Class3Total = 0

DECLARE student_CURSOR CURSOR FOR
SELECT Class1, Class2, Class3 FROM StudentsEnroll

OPEN student_CURSOR
FETCH NEXT FROM student_CURSOR INTO @Class1, @Class2, @Class3

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @Class1Total = @Class1Total + @Class1
    SET @Class2Total = @Class2Total + @Class2
    SET @Class3Total = @Class3Total + @Class3

    FETCH NEXT FROM student_CURSOR INTO @Class1, @Class2, @Class3
END

CLOSE student_CURSOR
DEALLOCATE student_CURSOR

SELECT 'A turma 1 tem ' + CAST(@Class1Total AS VARCHAR(10)) + ' alunos'
UNION ALL
SELECT 'A turma 2 tem ' + CAST(@Class2Total AS VARCHAR(10)) + ' alunos'
UNION ALL
SELECT 'A turma 3 tem ' + CAST(@Class3Total AS VARCHAR(10)) + ' alunos'

Outra abordagem é usar a função SUM juntamente com a cláusula GROUP BY. Isso nos permite calcular a soma de cada turma em uma única consulta. Aqui está um exemplo:

SELECT 'A turma 1 tem ' + CAST(SUM(CAST([Class1] AS INT)) AS VARCHAR(10)) + ' alunos.\n' +
       'A turma 2 tem ' + CAST(SUM(CAST([Class2] AS INT)) AS VARCHAR(10)) + ' alunos.\n' +
       'A turma 3 tem ' + CAST(SUM(CAST([Class3] AS INT)) AS VARCHAR(10)) + ' alunos.\n'
FROM [StudentsEnroll];

Também existem outras soluções criativas, como usar XML ou tabelas temporárias. A escolha da solução depende dos requisitos e restrições específicos do seu projeto.

É importante observar que compreender essas diferentes abordagens para agregar dados no SQL Server pode melhorar significativamente suas habilidades de resolução de problemas e aumentar suas chances de sucesso em entrevistas de emprego.

Qual solução é a sua favorita? Deixe-nos saber nos comentários abaixo!

Não deixe de conferir nossos outros artigos sobre conceitos do SQL Server e perguntas de entrevista. E se você está procurando um emprego na área do SQL Server, não deixe de visitar nosso quadro de vagas para as últimas oportunidades.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.