Phiên bản không được hỗ trợ:7.0 / 6.5 / 6.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 35. tỷ lệ kèo bóng đáSQL: Tổng tỷ lệ kèo bóng đá

5645_5661Postgreslà Thể hiện về mặt chức năng chuyển đổi trạng thái. Đó là, một Tổng tỷ lệ kèo bóng đá có thể được định nghĩa theo trạng thái được sửa đổi Bất cứ khi nào một ví dụ được xử lý. Một số chức năng trạng thái nhìn vào một giá trị cụ thể trong trường tỷ lệ kèo bóng đá khi tính toán trạng thái mới (SFUNC1Trong tập tỷ lệ kèo bóng đá tạo Cú pháp) trong khi những người khác chỉ theo dõi trạng thái nội bộ của chính họ (SFUNC2). Nếu chúng ta xác định một tổng tỷ lệ kèo bóng đá chỉ sử dụngSFUNC1, chúng tôi xác định một Tổng tỷ lệ kèo bóng đá tính toán hàm đang chạy của các giá trị thuộc tính từ mỗi trường tỷ lệ kèo bóng đá. "Sum" là một ví dụ về loại tổng tỷ lệ kèo bóng đá này. "Sum" bắt đầu ở 0 và luôn thêm giá trị của phiên bản hiện tại đến tổng số chạy của nó. Chúng tôi sẽ sử dụngINT4PL6485_6507PostgresĐể thực hiện bổ sung này.

Tạo tổng tỷ lệ kèo bóng đá phức hợp_sum (
    sfunc1 = comple_add,
    basetype = phức tạp,
    stype1 = phức tạp,
    initCond1 = '(0,0)'
);

Chọn Complex_Sum (a) từ test_complex;

         +------------+
         | Complex_Sum |
         +------------+
         | (34,53,9) |
         +------------+

Nếu chúng ta chỉ xác địnhSFUNC2, Chúng tôi là chỉ định một tổng tỷ lệ kèo bóng đá tính toán một hàm đang chạy không phụ thuộc vào các giá trị thuộc tính từ mỗi trường tỷ lệ kèo bóng đá. "Đếm" là Ví dụ phổ biến nhất của loại tổng tỷ lệ kèo bóng đá này. "Đếm" bắt đầu ở mức 0 và thêm một vào tổng số chạy của nó cho mỗi trường tỷ lệ kèo bóng đá, Bỏ qua giá trị thể hiện. Ở đây, chúng tôi sử dụng tích tỷ lệ kèo bóng đáINT4INCthói quen thực hiện công việc cho chúng tôi. Cái này gia số thường quy (thêm một vào) đối số của nó.

Tạo tổng tỷ lệ kèo bóng đá My_Count (
    sfunc2 = int4inc, - Thêm một
    basetype = int4,
    stype2 = int4,
    initCond2 = '0'
);

Chọn my_count (*) làm EMP_Count từ EMP;

         +----------+
         | EMP_COUNT |
         +----------+
         | 5 |
         +----------+

"Trung bình" là một ví dụ về một tổng tỷ lệ kèo bóng đá yêu cầu cả hàm để tính tổng chạy và hàm để tính toán Chạy số lượng. Khi tất cả các trường tỷ lệ kèo bóng đá đã được xử lý, Câu trả lời cuối cùng cho tổng tỷ lệ kèo bóng đá là tổng chạy được chia cho Chạy số lượng. Chúng tôi sử dụngINT4PLINT4INCCác thói quen chúng tôi đã sử dụng trước đây cũng nhưPostgresSố nguyên Phân chia thường xuyên,INT4DIV, để tính toán sự phân chia của tỷ lệ kèo bóng đá số.

Tạo tổng tỷ lệ kèo bóng đá my_average (
    sfunc1 = int4pl, - sum
    basetype = int4,
    stype1 = int4,
    sfunc2 = int4inc, - đếm
    stype2 = int4,
    FinalFunc = int4div, - Bộ phận
    initCond1 = '0',
    initCond2 = '0'
);

Chọn my_average (tiền lương) làm EMP_AVERAGE từ EMP;

         +------------+
         | EMP_AVERAGE |
         +------------+
         | 1640 |
         +------------+