Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite SUM
funkcja do obliczenia sumy wszystkich wartości.
Wprowadzenie do SQLite SUM
funkcja
SUM
funkcja to funkcja agregująca, która zwraca sumę wartości różnych od NULL lub tylko wartości odrębnych w grupie.
Poniższe wyrażenie ilustruje składnię SUM
funkcja:
SUM([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
SUM
funkcja używa ALL
klauzuli domyślnie. Oznacza to, że wszystkie wartości wejściowe, niezależnie od tego, czy są zduplikowane, czy nie, są brane pod uwagę, gdy SUM
funkcja wykonuje obliczenia.
Jeśli chcesz obliczyć sumę unikalnych wartości, musisz określić DISTINCT
klauzula wyraźnie w wyrażeniu.
Wynik SUM
funkcja jest liczbą całkowitą, jeśli wszystkie wartości wejściowe inne niż NULL są liczbami całkowitymi. Jeśli jakakolwiek wartość wejściowa nie jest liczbą całkowitą ani NULL
wartość, wynik SUM
funkcja jest wartością zmiennoprzecinkową.
Wynik SUM
funkcja to NULL
jeśli i tylko wtedy wszystkie wartości wejściowe są NULL
.
W przypadku wystąpienia błędu przepełnienia liczby całkowitej, a wszystkie wartości wejściowe są NULL
lub liczb całkowitych, SUM
funkcja zgłasza wyjątek przepełnienia liczby całkowitej.
SQLite SUM
przykłady funkcji
Użyjemy tracks
tabeli w przykładowej bazie danych do demonstracji.
Aby uzyskać całkowitą długość wszystkich ścieżek w tracks
tabeli, używasz SUM
funkcjonować jako następująca instrukcja:
SELECT
SUM(milliseconds)
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
SQLite SUM
funkcja z GROUP BY
klauzula
Aby obliczyć całkowitą długość każdego albumu, musisz użyć SUM
funkcja z GROUP BY
klauzula.
Najpierw GROUP BY
klauzula grupuje zestaw utworów według albumów. Następnie SUM
funkcja oblicza sumę długości utworów na album.
Poniższe stwierdzenie ilustruje ten pomysł:
SELECT
AlbumId,
SUM(milliseconds)
FROM
tracks
GROUP BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
SQLite SUM
funkcja i INNER JOIN
przykład klauzuli
Aby uwzględnić tytuły albumów w wynikach, dołącz do tracks
tabela do albums
tabela za pomocą INNER JOIN
klauzula w następujący sposób:
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)
Wypróbuj
SQLite SUM
funkcja i HAVING
przykład klauzuli
Możesz użyć SUM
funkcja w HAVING
klauzula filtrowania grup na podstawie określonego warunku.
Na przykład następująca instrukcja pobiera wszystkie albumy, których łączna długość jest większa niż 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)
Wypróbuj
W tym samouczku przedstawiliśmy Ci SQLite SUM
funkcja zwracająca sumę wartości w grupie.