A cláusula PostgreSQL com é usada de perto em conjunto com o grupo por declaração, restringindo o resultado apenas às linhas que atendem à condição da cláusula de ter.
Uso básico
A sintaxe mais básica para a cláusula de ter:
Selecione col_list do grupo Table_name por Col tendo condição;Na sintaxe expressa acima, a cláusula de ter filtra os grupos e, em seguida, o grupo por cláusula os classifica pela coluna especificada.
Isso significa apenas as colunas que atendem à condição da cláusula de ter no grupo por cláusula.
A cláusula de ter uma prioridade mais baixa do que outras cláusulas, como selecionar, onde e grupo.
Se você precisar incluir um pedido por declaração na consulta, certifique -se de adicioná -la após a cláusula de ter, porque ela tem uma prioridade mais baixa do que a cláusula de ter.
Exemplo 1
Vamos ilustrar como usar a cláusula de ter usando um exemplo do mundo real. Para esta ilustração, usaremos o banco de dados de amostra Sakila.
Selecione Film_id, Title, Release_year, Comprimento do grupo de cinema por film_id tendo soma (comprimento)> 150 limite 10;No exemplo acima, selecionamos as colunas especificadas da tabela de filme, onde a soma do comprimento de cada filme_ID é maior que 150.
A consulta acima deve retornar apenas os filmes onde o comprimento era maior que 150 agrupado por film_id.
Aqui está um exemplo de saída:
Exemplo 2
Também podemos usar a cláusula com outras funções agregadas. Um exemplo são as funções min e max.
Selecione Payment_Id, Customer_Id, Montante do Grupo de Pagamentos por Pagamento_ID com max (valor)> 10 Limite 5;A consulta acima deve retornar os valores onde a quantidade é maior que 10.
Exemplo 3
Você também pode usar a cláusula de ter com a cláusula onde. Por exemplo:
Selecione Payment_Id,Nesse caso, agrupamos o pagamento de todos os registros cujo valor máximo é menor que 5 e o ID do aluguel é maior que 10000 (determinado pela cláusula WHERE).
Resumindo
A cláusula PostGresql permite filtrar os resultados que satisfazem uma condição agregada específica.