Trong SQLite, Sum()
hàm chấp nhận một DISTINCT
tùy chọn từ khóa cho phép bạn chỉ thêm các giá trị riêng biệt trong nhóm. Có nghĩa là, nó loại bỏ bất kỳ bản sao nào khỏi tính toán của nó.
Vì vậy, nếu có giả sử, ba hàng chứa 10, chỉ một trong những hàng đó sẽ được đưa vào kết quả.
Cú pháp
Cú pháp khi sử dụng DISTINCT
từ khóa giống như sau:
Sum(DISTINCT X)
Ở đâu X
là tên của cột mà bạn đang thêm các giá trị.
Ví dụ
Hãy xem xét bảng sau được gọi là Products
:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Blue Widget 10.0 3 Red Widget 10.0 4 Green Widget 10.0 5 Widget Stick 89.75 6 Foo Cap 11.99
Dưới đây là một ví dụ về việc nhận được tổng khác biệt của tất cả các mức giá.
SELECT Sum(DISTINCT Price)
FROM Products;
Kết quả:
251.24
Đây là một lần nữa, nhưng lần này tôi cũng bao gồm một sum()
“không khác biệt” để so sánh.
SELECT
Sum(Price),
Sum(DISTINCT Price)
FROM Products;
Kết quả:
Sum(Price) Sum(DISTINCT Price) ---------- ------------------- 271.24 251.24
Vì vậy, sum(Price)
không khác biệt đã thêm tất cả các giá trị bất kể trùng lặp. Nhưng sum(DISTINCT Price)
chỉ thêm các giá trị riêng biệt.