Partilhar via


Recolher grupos de linhas (Visual Database Tools)

Aplica-se a:SQL Server

Você pode criar um resultado de consulta no qual cada linha de resultado corresponde a um grupo inteiro de linhas dos dados originais. Ao recolher linhas, há várias coisas a ter em mente:

  • Você pode eliminar linhas duplicadas Algumas consultas podem criar conjuntos de resultados nos quais várias linhas idênticas aparecem. Por exemplo, você pode criar um conjunto de resultados no qual cada linha contém o nome da cidade e do estado de uma cidade que contém um autor - mas se uma cidade contiver vários autores, há várias linhas idênticas. O SQL resultante pode ter esta aparência:

    SELECT city,
           state
    FROM authors;
    

    O conjunto de resultados gerado pela consulta anterior não é muito útil. Se uma cidade contiver quatro autores, o conjunto de resultados incluirá quatro linhas idênticas. Como o conjunto de resultados não inclui nenhuma coluna além de cidade e estado, não há como distinguir as linhas idênticas umas das outras. Uma maneira de evitar essas linhas duplicadas é incluir colunas adicionais que podem tornar as linhas diferentes. Por exemplo, se você incluir o nome do autor, cada linha será diferente (desde que não existam dois autores com nomes semelhantes em qualquer cidade). O SQL resultante pode ter esta aparência:

    SELECT city,
           state,
           fname,
           minit,
           lname
    FROM authors;
    

    É claro que a consulta anterior elimina o sintoma, mas não resolve o problema. Ou seja, o conjunto de resultados não tem duplicatas, mas não é mais um conjunto de resultados sobre cidades. Para eliminar duplicatas no conjunto de resultados original e ainda fazer com que cada linha descreva uma cidade, você pode criar uma consulta retornando apenas linhas distintas. O SQL resultante pode ter esta aparência:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Para obter detalhes sobre como eliminar duplicatas, consulte Excluir linhas duplicadas.

  • Você pode calcular em grupos de linhas Ou seja, você pode resumir informações em grupos de linhas. Por exemplo, você pode criar um conjunto de resultados no qual cada linha contém o nome da cidade e do estado de uma cidade que contém um autor, além de uma contagem do número de autores contidos nessa cidade. O SQL resultante pode ter esta aparência:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state;
    

    Para obter detalhes sobre o cálculo em grupos de linhas, consulte Resumir resultados de consulta e Classificar e agrupar resultados de consultas.

  • Você pode usar critérios de seleção para incluir grupos de linhas Por exemplo, você pode criar um conjunto de resultados no qual cada linha contém o nome da cidade e do estado de uma cidade contendo vários autores, além de uma contagem do número de autores contidos nessa cidade. O SQL resultante pode ter esta aparência:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state
    HAVING COUNT(*) > 1;
    

    Para obter detalhes sobre como aplicar critérios de seleção em grupos de linhas, consulte Especificar condições para grupos e Usar cláusulas HAVING e WHERE na mesma consulta.