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

Hàm SUM () trong MySQL

Trong MySQL, SUM() hàm tổng hợp trả về tổng của một biểu thức nhất định.

Nó cũng có thể được sử dụng để trả về tổng của tất cả các giá trị khác biệt (duy nhất) trong một biểu thức.

Cú pháp

Cú pháp như sau:

SUM([DISTINCT] expr) [over_clause]

Dữ liệu mẫu

Giả sử chúng ta có một bảng được gọi là Products với dữ liệu sau:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Kết quả:

+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |         NULL |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Ví dụ

Chúng tôi có thể sử dụng truy vấn sau để nhận tổng của tất cả các mức giá.

SELECT SUM(ProductPrice)
FROM Products;

Kết quả:

389.70

Tại đây, thông tin giá được lưu trữ trong ProductPrice và do đó chúng tôi chuyển nó làm đối số cho SUM() hàm, sau đó sẽ tính tổng và trả về kết quả.

Giá trị rỗng

SUM() hàm bỏ qua bất kỳ giá trị NULL nào. Trong bảng mẫu của chúng tôi ở trên, búa tạ có giá trị NULL trong ProductPrice của nó nhưng điều đó đã bị bỏ qua trong tính toán.

Kết quả đã lọc

SUM() hàm hoạt động trên các hàng được trả về bởi truy vấn. Vì vậy, nếu bạn lọc kết quả, đầu ra của SUM() sẽ phản ánh điều đó.

SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Kết quả:

78.72

Trong trường hợp này, 78,72 là tổng của tất cả các sản phẩm được cung cấp bởi nhà cung cấp được chỉ định.

DISTINCT Từ khóa

Bạn có thể sử dụng DISTINCT từ khóa với SUM() để chỉ tính các giá trị riêng biệt. Nghĩa là, nếu có bất kỳ giá trị trùng lặp nào, chúng được coi là một giá trị.

Ví dụ:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Kết quả:

363.71

Bàn của chúng tôi có hai mặt hàng có cùng mức giá (tuốc nơ vít thuận tay trái và tuốc nơ vít tay phải đều có giá 25,99). DISTINCT kết quả từ khóa trong cả hai giá trị đó được coi là một.

Chức năng của cửa sổ

Chúng ta có thể sử dụng OVER mệnh đề với SUM() chức năng tạo một chức năng cửa sổ. Xem SQL SUM() cho người mới bắt đầu 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. Sao lưu cơ sở dữ liệu MySQL của bạn

  2. Với MySQL, làm cách nào để tạo cột chứa chỉ mục bản ghi trong bảng?

  3. Làm thế nào để đồng bộ lại Mysql DB nếu Master và slave có cơ sở dữ liệu khác nhau trong trường hợp sao chép Mysql?

  4. Chén thánh làm sạch đầu vào và đầu ra trong php?

  5. Danh sách SELECT không nằm trong mệnh đề GROUP BY và chứa cột không được tổng hợp .... không tương thích với sql_mode =only_full_group_by