Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Quando você cria consultas agregadas, as Ferramentas de Designer de Consulta e Exibição (Visual Database Tools) fazem determinadas suposições para que possam construir uma consulta válida. Por exemplo, se você estiver criando uma consulta agregada e marcar uma coluna de dados para saída, o Designer de Consulta e Exibição tornará automaticamente a GROUP BY coluna parte da cláusula para que você não tente exibir inadvertidamente o conteúdo de uma linha individual em um resumo.
Usar o grupo 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 à
GROUP BYcláusula. As colunas não são adicionadas automaticamente àGROUP BYcláusula se já fizerem parte de uma função agregada.Se não quiser que uma coluna específica faça parte da
GROUP BYcláusula, altere-a 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 impede que você escolha uma opção que pode resultar em uma consulta que não é executada.Se você adicionar manualmente uma coluna de saída de consulta a uma função agregada 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
GROUP BYcláusula ou de uma função agregada.
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 grade não for exibida (porque você ainda não especificou uma consulta agregada), a condição de pesquisa será colocada na
WHEREcláusula.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
WHEREcláusula.Se a coluna Agrupar por contiver qualquer valor diferente de Onde, a condição de pesquisa será colocada na
HAVINGcláusula.
Use 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 WHERE cláusula) ou para determinar quais resultados agrupados aparecem na saída final (uma HAVING cláusula).
Colunas de dados individuais podem aparecer na
WHEREcláusula ouHAVING, dependendo de como elas são usadas em outro lugar na consulta.WHEREAs cláusulas 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 umaWHEREcláusula, mesmo que ela não faça parte daGROUP BYcláusula ou esteja contida em uma função agregada. Por exemplo, a instrução a seguir seleciona todos os títulos que custam mais de US$ 10,00 e calcula 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
GROUP BYcláusula ou função de agregação, a condição de pesquisa poderá aparecer como umaWHEREcláusula ou umaHAVINGcláusula - você poderá 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, em seguida, exibe a média para os editores em que o preço médio é maior que $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 uma condição de pesquisa, a condição envolve um resumo e, portanto, deve fazer parte da
HAVINGcláusula.