PostgreSQL com cláusula

PostgreSQL com cláusula
Neste tutorial, você aprenderá a trabalhar com a cláusula PostgreSQL com a cláusula para retornar apenas conjuntos de linhas que atendem a um critério específico.

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,
Max (quantidade)
Do pagamento
Onde Rental_id> 10000
Grupo por pagamento_id
Tendo max (quantidade) < 5 LIMIT 10;

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.