Giống như hầu hết
Các sản phẩm cơ sở dữ liệu quan hệ khác,PostgreSQLHỗ trợ các hàm tổng kèo chấp bóng đá hôm nay. MỘT
Hàm tổng kèo chấp bóng đá hôm nay tính toán một kết quả duy nhất từ nhiều đầu vào
hàng. Ví dụ: có các tập kèo chấp bóng đá hôm nay để tính toánĐếm
, Sum
, AVG
(trung bình),Max
(tối đa) vàmin
(tối thiểu) trên một tập kèo chấp bóng đá hôm nay
hàng.
Ví dụ, chúng ta có thể tìm thấy cách đọc nhiệt độ thấp nhất Bất cứ nơi nào với
chọn tối đa (temp_lo) từ thời tiết;
Max ----- 46 (1 hàng)
Nếu chúng ta muốn biết những gì kèo chấp bóng đá hôm nay phố (hoặc kèo chấp bóng đá hôm nay phố) mà đọc xảy ra, chúng ta có thể thử
Chọn kèo chấp bóng đá hôm nay phố từ thời tiết nơi temp_lo = max (temp_lo);sai
Nhưng điều này sẽ không hoạt động vì tổng kèo chấp bóng đá hôm nayMax
Không thể được sử dụng trongWHEREmệnh đề. (Hạn chế này tồn tại vìWHEREmệnh đề xác định các hàng mà
sẽ đi vào giai đoạn tổng kèo chấp bóng đá hôm nay; Vì vậy, nó phải được đánh giá
trước khi các chức năng tổng kèo chấp bóng đá hôm nay được tính toán.) Tuy nhiên, như thường lệ
trường kèo chấp bóng đá hôm nay truy vấn có thể được khôi phục để hoàn thành dự định
kết quả, ở đây bằng cách sử dụngSBURERY:
Chọn kèo chấp bóng đá hôm nay phố từ thời tiết Trong đó temp_lo = (chọn tối đa (temp_lo) từ thời tiết);
kèo chấp bóng đá hôm nay phố --------------- San Francisco (1 hàng)
Điều này là OK bởi vì trình điều khiển con là một tính toán độc lập điều đó tính toán tổng kèo chấp bóng đá hôm nay của chính nó một cách riêng biệt với những gì đang xảy ra Trong truy vấn bên ngoài.
Tập kèo chấp bóng đá hôm nay cũng rất hữu ích khi kết kèo chấp bóng đá hôm nay vớiNhóm bởimệnh đề. Ví dụ, chúng ta có thể Nhận nhiệt độ thấp tối đa quan sát được ở mỗi kèo chấp bóng đá hôm nay phố với
Chọn kèo chấp bóng đá hôm nay phố, Max (Temp_LO) Từ thời tiết Theo nhóm theo kèo chấp bóng đá hôm nay phố;
kèo chấp bóng đá hôm nay phố | Tối đa ---------------+----- Hayward | 37 San Francisco | 46 (2 hàng)
cung cấp cho chúng tôi một hàng đầu ra cho mỗi thành phố. Mỗi kết quả tổng kèo chấp bóng đá hôm nay được tính toán trên các hàng bảng phù kèo chấp bóng đá hôm nay với thành phố đó. Chúng ta có thể lọc Các hàng được nhóm này bằng cách sử dụngcó:
Chọn kèo chấp bóng đá hôm nay phố, Max (Temp_Lo) Từ thời tiết Nhóm từng kèo chấp bóng đá hôm nay phố Có tối đa (temp_lo) <40;
kèo chấp bóng đá hôm nay phố | Tối đa ---------+----- Hayward | 37 (1 hàng)
cung cấp cho chúng ta kết quả tương tự chỉ cho các kèo chấp bóng đá hôm nay phố có tất cảTEMP_LOgiá trị dưới 40. Cuối cùng, nếu Chúng tôi chỉ quan tâm đến các kèo chấp bóng đá hôm nay phố có tên bắt đầu bằng"S", chúng ta có thể làm
Chọn kèo chấp bóng đá hôm nay phố, Max (Temp_lo) Từ thời tiết Nơi kèo chấp bóng đá hôm nay phố thích 's%'(1)Nhóm theo kèo chấp bóng đá hôm nay phố Có tối đa (temp_lo) <40;
Điều quan trọng là phải hiểu sự tương tác giữa tổng kèo chấp bóng đá hôm nay vàSQL'sWHEREvàcómệnh đề. Sự khác biệt cơ bản giữaWHEREvàcóCó phải thế này:WHEREChọn các hàng đầu vào trước khi các nhóm và tổng kèo chấp bóng đá hôm nay được tính toán (Do đó, nó kiểm soát các hàng đi vào tính toán tổng kèo chấp bóng đá hôm nay), trong khicóChọn các hàng nhóm sau khi Các nhóm và tập kèo chấp bóng đá hôm nay được tính toán. Do đó,WHEREmệnh đề không được chứa các hàm tổng kèo chấp bóng đá hôm nay; Không có ý nghĩa gì khi cố gắng sử dụng một tổng kèo chấp bóng đá hôm nay để xác định cái nào Hàng sẽ là đầu vào cho các tập kèo chấp bóng đá hôm nay. Mặt khác,cómệnh đề luôn chứa tổng kèo chấp bóng đá hôm nay chức năng. (Nói đúng ra, bạn được phép viết mộtcómệnh đề không sử dụng tổng kèo chấp bóng đá hôm nay, nhưng nó lãng phí: điều kiện tương tự có thể được sử dụng hiệu quả hơn tạiWHEREGiai đoạn.)
Quan sát rằng chúng ta có thể áp dụng giới hạn tên kèo chấp bóng đá hôm nay phố trongWHERE, vì nó không cần tổng kèo chấp bóng đá hôm nay. Cái này hiệu quả hơn so với việc thêm hạn chế vàocó, bởi vì chúng tôi tránh làm nhóm và Tính toán tổng kèo chấp bóng đá hôm nay cho tất cả các hàng không thành côngWHEREKiểm tra.