sql >> Databáze >  >> RDS >> SQLite

SQLite s

Shrnutí :v tomto tutoriálu se naučíte používat SQLite HAVING klauzule k určení podmínky filtru pro skupinu nebo agregaci.

Úvod do SQLite HAVING klauzule

SQLite HAVING klauzule je volitelná klauzule SELECT prohlášení. HAVING klauzule určuje podmínku hledání pro skupinu.

Často používáte HAVING klauzule s GROUP BY doložka. GROUP BY klauzule seskupuje sadu řádků do sady souhrnných řádků nebo skupin. Poté HAVING klauzule filtruje skupiny na základě zadané podmínky.

Pokud použijete HAVING klauzule, musíte zahrnout GROUP BY doložka; jinak se zobrazí následující chyba:

Error: a GROUP BY clause is required before HAVINGCode language: JavaScript (javascript)

Všimněte si, že HAVING klauzule se použije po GROUP BY klauzule, zatímco WHERE klauzule je použita před GROUP BY doložka.

Následující text ilustruje syntaxi HAVING klauzule:

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)

V této syntaxi HAVING klauzule vyhodnocuje search_condition pro každou skupinu jako booleovský výraz. Zahrnuje skupinu do konečné sady výsledků pouze v případě, že je hodnocení pravdivé.

SQLite HAVING příklady vět

Použijeme tracks tabulka ve vzorové databázi pro demonstraci.

Chcete-li zjistit počet skladeb pro každé album, použijte GROUP BY doložka takto:

SELECT
	albumid,
	COUNT(trackid)
FROM
	tracks
GROUP BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Abychom našli čísla skladeb pro album s ID 1, přidáme HAVING doložka k následujícímu prohlášení:

SELECT
	albumid,
	COUNT(trackid)
FROM
	tracks
GROUP BY
	albumid
HAVING albumid = 1;

Zkuste to

Odkazovali jsme na AlbumId ve sloupci HAVING doložka.

Chcete-li najít alba, která mají počet skladeb mezi 18 a 20, použijte agregační funkci v HAVING klauzule, jak je uvedeno v následujícím prohlášení:

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)

Zkuste to

SQLite HAVING klauzule s INNER JOIN příklad

Následující příkaz se dotazuje na data ze tracks a albums tabulky pomocí vnitřního spojení k nalezení alb, která mají celkovou délku větší než 60 000 000 milisekund.

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)

Zkuste to

V tomto tutoriálu jste se naučili používat SQLite HAVING klauzule k určení podmínky vyhledávání pro skupiny.


  1. SQL Server 2005 a rozsah dočasné tabulky

  2. Jak zobrazit všechna národní prostředí v MariaDB

  3. Část 2 – Jak uspořádat velký databázový diagram

  4. Testování vrstvy ODBC