SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite Tendo


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 HAVINGCode 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.