Compartilhar via


Trabalhar com colunas em consultas de agregação (Visual Database Tools)

Quando você cria consultas de agregação, o designer de consulta e exibição faz determinadas suposições para que ele possa construir uma consulta válida. Por exemplo, se você estiver criando uma consulta de agregação e marcar uma coluna de dados para saída, o Designer de Consulta e Exibição automaticamente incluirá a coluna na cláusula GROUP BY para que você não tente exibir de forma não intencional o conteúdo de uma linha individual em um resultado resumido.

Agrupar por

O Designer de Consulta e Exibição usa as seguintes diretrizes para trabalhar com colunas:

  • Quando você escolhe a opção Agrupar Por ou adiciona uma função de agregação a uma consulta, todas as colunas marcadas para saída ou usadas para classificação são adicionadas automaticamente à cláusula GROUP BY. As colunas não serão adicionadas automaticamente à cláusula GROUP BY se já fizerem parte de uma função de agregação.

    Se você não quiser que uma coluna específica faça parte da cláusula GROUP BY, você deverá alterá-la manualmente selecionando uma opção diferente na coluna Agrupar por do painel Critérios. No entanto, o Designer de Consulta e Exibição não impedirá que você escolha uma opção que possa resultar em uma consulta que não será executada.

  • Se você adicionar manualmente uma coluna de saída de consulta a uma função de agregação no painel Critérios ou SQL, o Designer de Consulta e Exibição não removerá automaticamente outras colunas de saída da consulta. Portanto, você deve remover as colunas restantes da saída da consulta ou torná-las parte da cláusula GROUP BY ou de uma função de agregação.

Quando você insere uma condição de pesquisa na coluna Filtro do painel Critérios, o Designer de Consulta e Exibição segue estas regras:

  • Se a coluna Agrupar por da tabela não for exibida (pois você ainda não especificou uma consulta de agregação), a condição de pesquisa será colocada na cláusula WHERE.

  • Se você já estiver em uma consulta agregada e tiver selecionado a opção Onde na coluna Agrupar por, a condição de pesquisa será colocada na cláusula WHERE.

  • Se a coluna Agrupar por contiver qualquer valor diferente de Where, a condição de pesquisa será colocada na cláusula HAVING.

Usando as cláusulas HAVING e WHERE

Os princípios a seguir descrevem como você pode referenciar colunas em uma consulta agregada em condições de pesquisa. Em geral, você pode usar uma coluna em uma condição de pesquisa para filtrar as linhas que devem ser resumidas (uma cláusula WHERE) ou para determinar quais resultados agrupados aparecem na saída final (uma cláusula HAVING).

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

  • As cláusulas WHERE são usadas para selecionar um subconjunto de linhas para resumir e agrupar e, portanto, são aplicadas antes de qualquer agrupamento ser feito. Portanto, você pode usar uma coluna de dados em uma cláusula WHERE mesmo que ela não faça parte da cláusula GROUP BY ou esteja contida em uma função de agregação. Por exemplo, a instrução a seguir seleciona todos os títulos que custam mais de US$ 10,00 e faz a média do preço:

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

    SELECT pub_id, AVG(price)  
    FROM titles  
    GROUP BY pub_id  
    HAVING (AVG(price) > 10)  
    
  • Se você usar uma função de agregação em uma condição de pesquisa, a condição envolverá um resumo e, portanto, deverá fazer parte da cláusula HAVING.

Consulte Também

Resumir Resultados da Consulta (Ferramentas de Banco de Dados Visuais)
Classificar e Agrupar Resultados de Consulta (Ferramentas de Banco de Dados Visuais)