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.