Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite COUNT chức năng lấy số lượng mục trong một nhóm.
Giới thiệu về SQLite COUNT() chức năng
Hàm COUNT() là một hàm tổng hợp trả về số lượng các mục trong một nhóm.
Ví dụ:bạn có thể sử dụng COUNT() chức năng lấy số lượng bản nhạc từ tracks bảng, số lượng nghệ sĩ từ artists bảng, v.v.
Phần sau minh họa cú pháp cơ bản của COUNT chức năng:
COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql) Đối số
COUNT hàm hoạt động theo các đối số mà bạn truyền vào nó và tùy chọn ALL hoặc DISTINCT mà bạn chỉ định.
Phần sau mô tả ý nghĩa của ALL và DISTINCT tùy chọn:
-
ALL:khi bạn chỉ định tất cả,COUNT()hàm đếm tất cả các giá trị không rỗng bao gồm các bản sao.COUNT()hàm sử dụngALLtheo mặc định nếu bạn bỏ qua. -
DISTINCT:nếu bạn sử dụngDISTINCTmột cách rõ ràng tùy chọn,COUNThàm chỉ đếm các giá trị duy nhất và không rỗng.
Biểu thức có thể là một cột hoặc một biểu thức liên quan đến các cột mà hàm COUNT() được áp dụng.
SQLite cung cấp một cú pháp khác của COUNT() chức năng:
COUNT(*)Code language: SQL (Structured Query Language) (sql)
COUNT(*) hàm trả về số hàng trong bảng, bao gồm các hàng bao gồm NULL và các bản sao.
SQLite COUNT() minh họa chức năng
Đầu tiên, tạo một bảng có tên t1 có một cột:
CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)
Thứ hai, chèn năm hàng vào t1 bảng:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)
Thứ ba, truy vấn dữ liệu từ t1 bảng:
SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)
Thứ tư, sử dụng COUNT(*) hàm để trả về số hàng trong t1 bảng:
SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)
Như bạn có thể thấy rõ từ đầu ra, tập kết quả bao gồm NULL và các hàng trùng lặp.
Thứ năm, sử dụng COUNT(expression) để nhận số lượng giá trị không rỗng trong cột c :
SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)
Trong ví dụ này, COUNT(c) trả về số lượng giá trị không rỗng. Nó tính các hàng trùng lặp là các hàng riêng biệt.
Thứ sáu, sử dụng COUNT(DISTINCT expression) để nhận số lượng giá trị duy nhất và không rỗng trong cột c :
SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*) ví dụ
Chúng ta sẽ lấy bảng tracks trong cơ sở dữ liệu mẫu để chứng minh chức năng của COUNT(*) chức năng.
1) SQLite COUNT(*) ví dụ
Để lấy số hàng từ tracks , bạn sử dụng COUNT(*) chức năng như sau:
SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
count(*)
--------
3503Code language: plaintext (plaintext) 2) SQLite COUNT(*) với WHERE ví dụ mệnh đề
Câu lệnh sau sử dụng COUNT(*) hàm với WHERE mệnh đề để tìm số bản nhạc có id album là 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
COUNT(*)
--------
14 3) SQLite COUNT(*) với GROUP BY ví dụ mệnh đề
Để nhận tất cả các album và số lượng bản nhạc trong mỗi album, bạn kết hợp COUNT(*) chức năng với GROUP BY mệnh đề:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
... Trong ví dụ này:
- Đầu tiên,
GROUP BYcác bài hát của nhóm mệnh đề theo id album. - Sau đó,
COUNT(*)hàm trả về số lượng bản nhạc cho mỗi album hoặc nhóm bản nhạc.
4) SQLite COUNT(*) với HAVING ví dụ mệnh đề
Phần sau sử dụng COUNT(*) trong HAVING mệnh đề tìm anbom có hơn 25 bản nhạc:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql) Hãy thử nó
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26 5) SQLite COUNT(*) với INNER JOIN ví dụ mệnh đề
Để làm cho đầu ra của truy vấn trên hữu ích hơn, bạn có thể bao gồm cột tên của anbom. Để thực hiện việc này, bạn thêm INNER JOIN và ORDER BY mệnh đề cho truy vấn như truy vấn sau:
SELECT
tracks.albumid,
title,
COUNT(*)
FROM
tracks
INNER JOIN albums ON
albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING
COUNT(*) > 25
ORDER BY
COUNT(*) DESC;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26 SQLite COUNT(DISTINCT expression) ví dụ
Hãy xem employees bảng từ cơ sở dữ liệu mẫu.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
EmployeeId LastName FirstName Title
---------- -------- --------- -------------------
1 Adams Andrew General Manager
2 Edwards Nancy Sales Manager
3 Peacock Jane Sales Support Agent
4 Park Margaret Sales Support Agent
5 Johnson Steve Sales Support Agent
6 Mitchell Michael IT Manager
7 King Robert IT Staff
8 Callahan Laura IT Staff
Để lấy số lượng chức danh, bạn chuyển title vào cột COUNT() chức năng như sau:
SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
COUNT(title)
------------
8
Tuy nhiên, để nhận được số lượng tiêu đề duy nhất, bạn cần thêm DISTINCT tùy chọn cho COUNT() chức năng như được hiển thị trong câu lệnh sau:
SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Hãy thử nó
COUNT(DISTINCT title)
---------------------
5
Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sử dụng SQLite COUNT() chức năng đếm số lượng mục trong một nhóm.