Резюме :в този урок ще научите как да използвате SQLite SUM функция за изчисляване на сумата от всички стойности.
Въведение в SQLite SUM функция
SUM функцията е агрегатна функция, която връща сумата от стойностите, различни от NULL или само отделните стойности в група.
Следният израз илюстрира синтаксиса на SUM функция:
SUM([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql)
SUM функцията използва ALL клауза по подразбиране. Това означава, че всички входни стойности, независимо дали са дублирани или не, се вземат предвид, когато SUM функцията извършва изчислението.
Ако искате да изчислите сумата от уникални стойности, трябва да посочите DISTINCT клауза изрично в израза.
Резултатът от SUM функцията е цяло число, ако всички входни стойности, различни от NULL, са цели числа. Ако някоя входна стойност не е нито цяло число, нито NULL стойност, резултатът от SUM функцията е стойност с плаваща запетая.
Резултатът от SUM функцията е NULL ако и само ако всички входни стойности са NULL .
В случай, че има грешка при препълване на цяло число и всички входни стойности са NULL или цели числа, SUM функция хвърля изключение за препълване на цяло число.
SQLite SUM примери за функции
Ще използваме tracks таблица в примерната база данни за демонстрацията.
За да получите общата дължина на всички песни в tracks таблица, използвате SUM функционират като следното изявление:
SELECT
SUM(milliseconds)
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Опитайте го
SQLite SUM функция с GROUP BY клауза
За да изчислите общата дължина на всеки албум, трябва да използвате SUM функция с GROUP BY клауза.
Първо, GROUP BY клаузата групира набор от песни по албуми. След това SUM функцията изчислява сумата от дължините на песните на албум.
Следното твърдение илюстрира идеята:
SELECT
AlbumId,
SUM(milliseconds)
FROM
tracks
GROUP BY
AlbumId;Code language: SQL (Structured Query Language) (sql) Опитайте го
SQLite SUM функция и INNER JOIN пример за клауза
За да включите заглавията на албумите в изхода, се присъединявате към tracks таблица към albums таблица с помощта на INNER JOIN клауза, както следва:
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) Опитайте го
SQLite SUM функция и HAVING пример за клауза
Можете да използвате SUM функция в HAVING клауза за филтриране на групи въз основа на определено условие.
Например следното изявление получава всички албуми, чиято обща дължина е по-голяма от 1 000 000 милисекунди:
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) Опитайте го
В този урок ви запознахме с SQLite SUM функция, която връща сумата от стойности в група.