Oversigt :i denne øvelse lærer du, hvordan du bruger SQLite SUM funktion til at beregne summen af alle værdier.
Introduktion til SQLite SUM funktion
SUM funktion er en aggregeret funktion, der returnerer summen af ikke-NULL-værdier eller kun de distinkte værdier i en gruppe.
Det følgende udtryk illustrerer syntaksen for SUM funktion:
SUM([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql)
SUM funktion bruger ALL klausul som standard. Det betyder, at alle inputværdier, uanset om de er dublerede eller ej, tages i betragtning, når SUM funktion udfører beregningen.
Hvis du vil beregne summen af unik værdier, skal du angive DISTINCT klausul eksplicit i udtrykket.
Resultatet af SUM funktion er et heltal, hvis alle input ikke-NULL værdier er heltal. Hvis en inputværdi hverken er et heltal eller en NULL værdi, resultatet af SUM funktion er en flydende decimalværdi.
Resultatet af SUM funktionen er NULL hvis og kun hvis alle inputværdier er NULL .
Hvis der sker en heltalsoverløbsfejl, og alle inputværdier er NULL eller heltal, SUM funktion kaster en heltals overløb undtagelse.
SQLite SUM funktionseksempler
Vi vil bruge tracks tabel i eksempeldatabasen til demonstrationen.
For at få den samlede længde af alle spor i tracks tabel, bruger du SUM fungere som følgende sætning:
SELECT
SUM(milliseconds)
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Prøv det
SQLite SUM funktion med GROUP BY klausul
For at beregne den samlede længde af hvert album skal du bruge SUM funktion med GROUP BY klausul.
Først GROUP BY klausul grupperer et sæt numre efter album. Derefter SUM funktionen beregner summen af længder af spor pr. album.
Følgende udsagn illustrerer ideen:
SELECT
AlbumId,
SUM(milliseconds)
FROM
tracks
GROUP BY
AlbumId;Code language: SQL (Structured Query Language) (sql) Prøv det
SQLite SUM funktion og INNER JOIN klausuleksempel
For at inkludere albumtitlerne i outputtet, tilslutter du dig tracks tabel til albums tabel ved hjælp af INNER JOIN klausul som følger:
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) Prøv det
SQLite SUM funktion og HAVING klausuleksempel
Du kan bruge SUM funktion i HAVING klausul for at filtrere grupper baseret på en specificeret betingelse.
For eksempel får følgende sætning alle albums, hvis samlede længde er større end 1.000.000 millisekunder:
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) Prøv det
I denne øvelse har vi introduceret dig til SQLite SUM funktion, der returnerer summen af værdier i en gruppe.