Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite SUM
hàm để tính tổng của tất cả các giá trị.
Giới thiệu về SQLite SUM
chức năng
SUM
hàm là một hàm tổng hợp trả về tổng các giá trị không phải NULL hoặc chỉ các giá trị riêng biệt trong một nhóm.
Biểu thức sau minh họa cú pháp của SUM
chức năng:
SUM([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
SUM
hàm sử dụng ALL
mệnh đề theo mặc định. Có nghĩa là tất cả các giá trị đầu vào, cho dù trùng lặp hay không, đều được xem xét khi SUM
hàm thực hiện phép tính.
Nếu bạn muốn tính tổng của duy nhất giá trị, bạn phải chỉ định DISTINCT
mệnh đề rõ ràng trong biểu thức.
Kết quả của SUM
hàm là một số nguyên nếu tất cả các giá trị không phải NULL đầu vào là số nguyên. Nếu bất kỳ giá trị đầu vào nào không phải là số nguyên hoặc NULL
giá trị, kết quả của SUM
hàm là một giá trị dấu phẩy động.
Kết quả của SUM
hàm là NULL
nếu và chỉ khi tất cả các giá trị đầu vào là NULL
.
Trong trường hợp có lỗi tràn số nguyên xảy ra và tất cả các giá trị đầu vào là NULL
hoặc số nguyên, SUM
hàm ném một ngoại lệ tràn số nguyên.
SQLite SUM
ví dụ về hàm
Chúng tôi sẽ sử dụng tracks
trong cơ sở dữ liệu mẫu cho phần trình diễn.
Để nhận tổng thời lượng của tất cả các bản nhạc trong tracks
, bạn sử dụng SUM
hoạt động như câu lệnh sau:
SELECT
SUM(milliseconds)
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
SQLite SUM
chức năng với GROUP BY
mệnh đề
Để tính tổng thời lượng của mỗi album, bạn cần sử dụng SUM
chức năng với GROUP BY
mệnh đề.
Đầu tiên, GROUP BY
mệnh đề nhóm một tập hợp các bản nhạc theo album. Sau đó, SUM
hàm tính tổng độ dài của các bản nhạc trên mỗi album.
Câu lệnh sau minh họa ý tưởng:
SELECT
AlbumId,
SUM(milliseconds)
FROM
tracks
GROUP BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
SQLite SUM
chức năng và INNER JOIN
ví dụ mệnh đề
Để đưa tiêu đề anbom vào đầu ra, bạn nối các tracks
bảng vào albums
sử dụng INNER JOIN
mệnh đề như sau:
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)
Hãy thử nó
SQLite SUM
chức năng và HAVING
ví dụ mệnh đề
Bạn có thể sử dụng SUM
trong HAVING
mệnh đề để lọc các nhóm dựa trên một điều kiện cụ thể.
Ví dụ:câu lệnh sau lấy tất cả các anbom có tổng thời lượng lớn hơn 1.000.000 mili giây:
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)
Hãy thử nó
Trong hướng dẫn này, chúng tôi đã giới thiệu cho bạn SUM
của SQLite hàm trả về tổng các giá trị trong một nhóm.