Резюме :в този урок ще научите как да използвате 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
функция, която връща сумата от стойности в група.