Trabalhando com colunas em consultas agregadas

Quando você cria consultas agregadas a Query and View Designer Tools faz algumas suposições de forma que pode construir uma consulta válida. Por exemplo, se você estiver criando uma consulta agregada e marca uma coluna de dados para saída, a consulta e o modo de exibição Designer automaticamente faz a parte de coluna da cláusula GROUP BY, de modo que você não inadvertidamente tentar exibir o conteúdo de uma linha individual em um resumo.

Usando o Group By

A consulta e o modo de exibição Designer usa as seguintes diretrizes para trabalhar com colunas:

  • Quando você escolhe a opção Group By ou adiciona uma função agregada a uma consulta, todas as colunas marcadas para saída ou usado para classificar automaticamente são adicionadas à cláusula GROUP BY. Colunas não são adicionadas automaticamente à cláusula GROUP BY se elas já forem parte de uma função agregada.

    Se não desejar uma determinada coluna seja parte da cláusula GROUP BY, você deve alterá-lo manualmente, selecionando uma opção diferente na coluna Group By do painel de critérios. No entanto, a consulta e o modo de exibição Designer não impedirão você escolher uma opção que pode resultar em uma consulta que não será executado.

  • Se você adicionar manualmente uma coluna de saída de consulta para um agregado funcionem em ambos os critérios ou painel SQL, a consulta e o modo de exibição Designer não remove automaticamente outras colunas de saída da consulta. Portanto, você deve remover as colunas remanescentes da saída da consulta ou torná-las parte da cláusula GROUP BY ou de uma função agregada.

Quando você insere um critério de pesquisa para a coluna de filtro do painel de critérios, a consulta e o modo de exibição Designer segue estas regras:

  • Se o Group By coluna da grade não é exibida (porque você ainda não especificou uma consulta agregada), o critério de pesquisa é colocado dentro da cláusula WHERE.

  • Se você já estão em uma consulta agregada e selecionou a opção onde na Group By coluna, o critério de pesquisa é colocada dentro da cláusula WHERE.

  • Se o Group By coluna contiver qualquer valor diferente de onde, o critério de pesquisa é colocado na cláusula HAVING.

Usando o HAVING e onde as cláusulas

Os princípios a seguir descrevem como você pode referenciar colunas em uma consulta agregada em critérios de pesquisa. Em geral, você pode usar uma coluna em uma condição de pesquisa para filtrar as linhas que devem ser resumidos (uma cláusula WHERE) ou para determinar qual agrupados os resultados são exibidos na saída final (uma cláusula HAVING).

  • Colunas de dados individuais podem aparecer em tanto a cláusula WHERE ou HAVING, dependendo de como elas são usadas em outro lugar na consulta.

  • ONDE as cláusulas são usadas para selecionar um subconjunto de linhas para resumir e agrupar e são portanto aplicadas antes de concluir o agrupamento. Portanto, você pode usar uma coluna de dados em uma cláusula WHERE, mesmo que não seja parte da cláusula GROUP BY ou contida em uma função agregada. Por exemplo, a instrução a seguir seleciona todos os títulos que custam mais de $10.00 e calcula o preço médio:

    SELECT AVG(price)
    FROM titles
    WHERE price > 10
    
  • Se você criar um critério de pesquisa que envolve uma coluna também é usada em uma cláusula GROUP BY ou função agregada, o critério de pesquisa pode aparecer como uma cláusula WHERE ou uma cláusula HAVING — você pode decidir que, quando você criar a condição. Por exemplo, a instrução a seguir cria um preço médio para os títulos de cada editora e exiba a média para os editores em que o preço médio é maior que r $10,00:

    SELECT pub_id, AVG(price)
    FROM titles
    GROUP BY pub_id
    HAVING (AVG(price) > 10)
    
  • Se você usar uma função agregada em um critério de pesquisa, a condição envolve um resumo e portanto deve ser parte da cláusula HAVING.

Consulte também

Outros recursos

Resumindo os resultados da consulta

Classificar e agrupar os resultados da consulta