Recolhendo grupos de linhas (Visual Database Tools)

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árias coisas a serem levadas em consideração ao recolher linhas:

  • Você pode eliminar linhas duplicadas   Algumas consultas podem criar conjuntos de resultados nos quais são exibidas várias linhas idênticas. 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. Considerando que o conjunto de resultados não inclui nenhuma coluna além de cidade e estado, não há meios de distinguir as linhas idênticas umas das outras. Um modo para evitar tais linhas duplicadas é incluir colunas adicionais que podem diferenciar as linhas. Por exemplo, se você incluir o nome de autor, cada linha será diferente (contanto que nenhum autor com o mesmo nome viva na mesma cidade). O SQL resultante pode ter esta aparência:

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

    Claro, a consulta anterior elimina o sintoma, mas não resolve realmente o problema. Ou seja, o conjunto de resultados não tem linhas duplicadas, mas não é mais um conjunto de resultados sobre cidades. Para eliminar linhas duplicadas no conjunto de resultados original e cada linha ainda descrever uma cidade, você pode criar uma consulta que só retorne linhas distintas. O SQL resultante pode ter esta aparência:

    SELECT DISTINCT city, state
    FROM authors
    

    Para obter detalhes sobre como eliminar linhas duplicadas, consulte Como excluir linhas duplicadas (Visual Database Tools).

  • Você pode calcular em grupos de linhas   Ou seja, você pode resumir as 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, mais uma contagem do número de autores que moram 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 Resumindo resultados da consulta (Visual Database Tools) e Classificando e agrupando resultados da consulta (Visual Database Tools).

  • Você pode utilizar 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 que contém vários autores, mais uma contagem do número de autores contidos naquela 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 os critérios de seleção em grupos de linhas, consulte Como especificar critérios para grupos (Visual Database Tools) e Como usar as cláusulas HAVING e WHERE na mesma consulta (Visual Database Tools).