Resumo :neste tutorial, você aprenderá a usar SQLite
HAVING
cláusula para especificar uma condição de filtro para um grupo ou um agregado. Introdução ao SQLite HAVING
cláusula
SQLite
HAVING
cláusula é uma cláusula opcional do SELECT
demonstração. O HAVING
A cláusula especifica uma condição de pesquisa para um grupo. Você costuma usar o
HAVING
cláusula com o GROUP BY
cláusula. O GROUP BY
cláusula agrupa um conjunto de linhas em um conjunto de linhas ou grupos de resumo. Em seguida, o HAVING
cláusula filtra grupos com base em uma condição especificada. Se você usar o
HAVING
cláusula, você deve incluir o GROUP BY
cláusula; caso contrário, você receberá o seguinte erro:Error: a GROUP BY clause is required before HAVING
Code language: JavaScript (javascript)
Observe que o
HAVING
cláusula é aplicada após GROUP BY
cláusula, enquanto a WHERE
cláusula é aplicada antes do GROUP BY
cláusula. O seguinte ilustra a sintaxe do
HAVING
cláusula:SELECT
column_1,
column_2,
aggregate_function (column_3)
FROM
table
GROUP BY
column_1,
column_2
HAVING
search_condition;
Code language: SQL (Structured Query Language) (sql)
Nesta sintaxe, o
HAVING
cláusula avalia a search_condition
para cada grupo como uma expressão booleana. Só inclui um grupo no conjunto de resultados finais se a avaliação for verdadeira. SQLite HAVING
exemplos de cláusula
Usaremos as
tracks
tabela no banco de dados de exemplo para demonstração. Para encontrar o número de faixas de cada álbum, use
GROUP BY
cláusula da seguinte forma:SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Tente
Para encontrar os números de faixas do álbum com id 1, adicionamos um
HAVING
cláusula para a seguinte declaração:SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING albumid = 1;
Tente
Referimo-nos ao
AlbumId
coluna na coluna HAVING
cláusula. Para encontrar álbuns que tenham o número de faixas entre 18 e 20, use a função de agregação no
HAVING
cláusula como mostrado na declaração a seguir:SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
HAVING
COUNT(albumid) BETWEEN 18 AND 20
ORDER BY albumid;
Code language: SQL (Structured Query Language) (sql)
Tente
SQLite HAVING
cláusula com INNER JOIN
exemplo
A instrução a seguir consulta dados de
tracks
e albums
tabelas usando a junção interna para localizar álbuns com duração total superior a 60.000.000 milissegundos. SELECT
tracks.AlbumId,
title,
SUM(Milliseconds) AS length
FROM
tracks
INNER JOIN albums ON albums.AlbumId = tracks.AlbumId
GROUP BY
tracks.AlbumId
HAVING
length > 60000000;
Code language: SQL (Structured Query Language) (sql)
Tente
Neste tutorial, você aprendeu como usar SQLite
HAVING
cláusula para especificar a condição de pesquisa para grupos.