Shrnutí :v tomto tutoriálu se naučíte používat SQLite SUM
funkce pro výpočet součtu všech hodnot.
Úvod do SQLite SUM
funkce
SUM
funkce je agregační funkce, která vrací součet hodnot, které nejsou NULL, nebo pouze odlišné hodnoty ve skupině.
Následující výraz ilustruje syntaxi SUM
funkce:
SUM([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
SUM
funkce používá ALL
klauzule standardně. Znamená to, že při SUM
jsou brány v úvahu všechny vstupní hodnoty, duplicitní nebo ne funkce provede výpočet.
Pokud chcete vypočítat součet jedinečných hodnoty, musíte zadat DISTINCT
klauzule výslovně ve výrazu.
Výsledek SUM
funkce je celé číslo, pokud všechny vstupní hodnoty jiné než NULL jsou celá čísla. Pokud jakákoliv vstupní hodnota není ani celé číslo, ani NULL
hodnota, výsledek SUM
funkce je hodnota s plovoucí desetinnou čárkou.
Výsledek SUM
funkce je NULL
když a jen tehdy všechny vstupní hodnoty jsou NULL
.
V případě, že dojde k chybě přetečení celého čísla a všechny vstupní hodnoty jsou NULL
nebo celá čísla, SUM
funkce vyvolá výjimku přetečení celého čísla.
SQLite SUM
příklady funkcí
Použijeme tracks
tabulky ve vzorové databázi pro ukázku.
Chcete-li získat celkovou délku všech stop v tracks
tabulky, použijete SUM
fungovat jako následující příkaz:
SELECT
SUM(milliseconds)
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
SQLite SUM
funkce s GROUP BY
klauzule
Chcete-li vypočítat celkovou délku každého alba, musíte použít SUM
pomocí funkce GROUP BY
doložka.
Nejprve GROUP BY
klauzule seskupuje sadu skladeb podle alb. Poté SUM
funkce vypočítá součet délek stop na album.
Následující prohlášení ilustruje myšlenku:
SELECT
AlbumId,
SUM(milliseconds)
FROM
tracks
GROUP BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
SQLite SUM
funkce a INNER JOIN
příklad klauzule
Chcete-li do výstupu zahrnout názvy alb, spojte tracks
tabulky do albums
pomocí INNER JOIN
doložka takto:
SELECT
tracks.albumid,
title,
SUM(milliseconds)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid,
title;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
SQLite SUM
funkce a HAVING
příklad klauzule
Můžete použít SUM
funkce v HAVING
klauzule k filtrování skupin na základě zadané podmínky.
Například následující příkaz získá všechna alba, jejichž celková délka je větší než 1 000 000 milisekund:
SELECT
tracks.albumid AlbumId,
Title,
SUM(milliseconds)
FROM
tracks
INNER JOIN albums ON albums.albumid= tracks.albumid
GROUP BY
tracks.albumid,
title
HAVING
SUM(milliseconds) > 1000000;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V tomto tutoriálu jsme vám představili SQLite SUM
funkce, která vrací součet hodnot ve skupině.