Compartilhar via


Recolher grupos de linhas (Visual Database Tools)

aplica-se a: do 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. Existem vários aspectos a serem levados em consideração ao recolher linhas:

  • 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, haverá 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 colunas diferentes 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 haja 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, a pergunta anterior elimina o sintoma, mas realmente 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 ter cada linha para descrever 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 como calcular em grupos de linhas, consulte Resumir os resultados da consulta e classificar e agrupar os resultados da consulta.

  • 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 que contém 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.