Consulta LINQ com Group by

Olá, tudo bom?

Caso você esteja precisando fazer alguma consulta LINQ com group by, segue um modelo de classes para teste e alguns exemplos para ajudar.

Modelo de Classes para um Sistema Fictício de Help Desk
Modelo de Classes para um Sistema Fictício de Help Desk

Exemplo 1: Obtendo a quantidade de atividades de um determinado funcionário e agrupando por tipo de status


from a in Atividade
     where a.CodigoFuncionario == 1
     group a by new { a.Status.Descricao } into g
     select new {
            Status = g.Key.Descricao,
            Quantidade = g.Count()
     }

Exemplo 2: As 5 pessoas (solicitantes) que mais solicitam atividades


(from a in Atividade
      where a.CodigoFuncionario == 1
      group a by new { a.Solicitante.Nome } into g
      select new {
             Nome = g.Key.Nome,
             Quantidade = g.Count()
      }).OrderByDescending(x => x.Quantidade).Take(5)

Exemplo 3: As 5 classificações que mais possuem atividades associadas

(from a in Atividade
 from c in a.Classificacoes
      where a.CodigoFuncionario == 2
      group c by new { c.Nome } into g
           select new {
                  Nome = g.Key.Nome,
                  Quantidade = g.Count()
           }).OrderByDescending(x => x.Quantidade).Take(5)

Abraços,

Eduardo H. Rizo (@eduardorizo)

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

Post relacionado: LINQ: Exemplo de consulta com group by e sum

Deixe um comentário