SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite COUNT

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 ALLDISTINCT 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ụng ALL theo mặc định nếu bạn bỏ qua.
  • DISTINCT :nếu bạn sử dụng DISTINCT một cách rõ ràng tùy chọn, COUNT hà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 BY cá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 JOINORDER 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android - Làm cách nào để chuyển dữ liệu liên quan đến hai bảng sang phương thức chèn của Nhà cung cấp nội dung

  2. Cách đính kèm tệp .db với một android .apk khác

  3. Hiển thị dữ liệu trong RecyclerView

  4. Làm cách nào để kết hợp dữ liệu từ hai bảng riêng biệt thành một Con trỏ duy nhất?

  5. Ghi nhật ký thời gian truy vấn trong SQLite trên Android