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

Cách hoạt động của SQLite Sum ()

SQLite sum() hàm trả về tổng của tất cả các giá trị không phải NULL trong một nhóm.

Nếu không có giá trị nào không phải NULL, thì nó trả về NULL.

Về cơ bản, hàm này cho phép bạn cộng tất cả các giá trị trong một tập kết quả hoặc một bảng.

Ví dụ

Dưới đây là một ví dụ để chứng minh cách sử dụng của nó.

SELECT sum(Price) FROM Products;

Kết quả:

738.22

Ví dụ này có thể vô nghĩa nếu bạn không thể thấy các giá trị thực tế trong bảng.

Đây là một truy vấn trả về tất cả các hàng trong bảng đó.

SELECT * FROM Products;

Kết quả:

ProductId   ProductName            Price     
----------  ---------------------  ----------
1           Blue Widgets (6 Pack)  389.45    
2           Widget Holder          139.5     
3           Widget Opener          89.27     
4           Foobar Set             120.0     
5           Red Widget                    

Vì vậy, sum() chỉ cần thêm tất cả các giá trị trong Giá cột.

Lưu ý rằng giá của hàng cuối cùng là NULL. Vậy là được rồi. sum() hàm chỉ cần thêm tất cả các giá trị không phải NULL.

Giá trị NULL

Nếu không có giá trị nào không phải NULL, thì kết quả là NULL.

SELECT sum(Price) 
FROM Products
WHERE ProductId = 5;

Kết quả:

      

(Cái đó cố ý để trống, vì nó trả về NULL).

Điều này khác với cách SQLite total() hàm xử lý các giá trị NULL (nó trả về 0,0). Cả sum()total() làm điều tương tự, ngoại trừ sự khác biệt này.

Tập hợp kết quả nhỏ hơn

Ví dụ đầu tiên đã thêm tất cả các hàng trong bảng. Nhưng nó không nhất thiết phải là toàn bộ bảng. Như đã thấy trong ví dụ “NULL”, bạn cũng có thể sử dụng WHERE mệnh đề để thêm một tập hợp con các giá trị trong bảng.

Đây là một ví dụ khác sử dụng WHERE mệnh đề.

SELECT sum(Price) 
FROM Products
WHERE ProductId < 3;

Kết quả:

528.95

Lần này, nó đang thêm các giá trị không phải NULL, vì vậy tôi nhận được kết quả không phải NULL.

Đây là một cột khác lọc theo cùng một cột mà tôi đang thêm.

SELECT sum(Price) 
FROM Products
WHERE Price > 100;

Kết quả:

648.95

Đầu vào không phải số nguyên

Nếu bất kỳ đầu vào nào không phải là số nguyên hoặc NULL thì sum() trả về giá trị dấu phẩy động có thể là giá trị gần đúng với tổng thực.

Bạn có thể nhận được một số kết quả không mong muốn trong những trường hợp như vậy.

Dưới đây là một ví dụ cố gắng thêm một loạt các số fax.

Trước tiên, hãy xem danh sách các số fax.

SELECT Fax FROM Customer 
WHERE Fax IS NOT NULL;

Kết quả:

Fax               
------------------
+55 (12) 3923-5566
+420 2 4172 5555  
+55 (11) 3033-4564
+55 (11) 3055-8131
+55 (21) 2271-7070
+55 (61) 3363-7855
+1 (780) 434-5565 
+1 (604) 688-8756 
+1 (650) 253-0000 
+1 (425) 882-8081 
+1 (212) 221-4679 
+1 (408) 996-1011 

Bây giờ đây là những gì sẽ xảy ra nếu tôi cố gắng thêm chúng.

SELECT sum(Fax) 
FROM Customer;

Kết quả:

701.0 

Trong trường hợp này, nó dường như đã thêm tất cả các tiền tố.

Đây là những gì sẽ xảy ra nếu tôi sử dụng sum() trên một cột chuỗi.

SELECT sum(ProductName) 
FROM Products;

Kết quả:

0.0

Từ khóa DISTINCT

Bạn có thể thêm DISTINCT từ khóa để chỉ thêm các giá trị riêng biệt. Để thực hiện việc này, hãy sử dụng sum(DISTINCT X) ở đâu X là tên cột.

Xem Cách chỉ thêm các giá trị riêng biệt với SQLite Sum () để làm ví dụ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thực sự cần thiết để tạo bảng SQLite mỗi khi ứng dụng khởi động?

  2. Tại sao thời lượng là NULL cho sự kiện lặp lại trong Android?

  3. Sử dụng ContentProvider để xử lý các hoạt động cơ sở dữ liệu có tốt không?

  4. Cách Bật / Tắt các Ràng buộc KIỂM TRA trong SQLite

  5. đặt sqlite db đúng cách trong android