Tạo tổng tỷ lệ kèo bóng đátên(Basetype =input_data_type,, Sfunc =SFUNC, Stype =State_Type[, FinalFunc =ffunc] [, Initcond =init_condition])
Tên của hàm tổng tỷ lệ kèo bóng đá để tạo.
Kiểu dữ liệu đầu vào mà hàm tổng tỷ lệ kèo bóng đá này
hoạt động. Điều này có thể được chỉ định là bất kỳ cho một tổng tỷ lệ kèo bóng đá
không kiểm tra các giá trị đầu vào của nó (một ví dụ làCount (*)
).
Tên của chức năng chuyển đổi trạng thái được gọi Đối với mỗi giá trị dữ tỷ lệ kèo bóng đá đầu vào. Đây thường là một chức năng của hai đối số, đầu tiên là loạistate_typevà loại thứ hai của loạiinput_data_type. Ngoài ra, đối với một tổng tỷ lệ kèo bóng đá không kiểm tra giá trị đầu vào, hàm chỉ lấy một đối số của kiểustate_type. TRONG Một trong hai trường tỷ lệ kèo bóng đá hàm phải trả về giá trị của loạistate_type. Hàm này lấy giá trị trạng thái hiện tại và dữ tỷ lệ kèo bóng đá đầu vào hiện tại mục và trả về giá trị trạng thái tiếp theo.
Kiểu dữ liệu cho giá trị trạng thái của tổng tỷ lệ kèo bóng đá.
Tên của chức năng cuối cùng được gọi để tính toán Kết quả tổng tỷ lệ kèo bóng đá sau khi tất cả dữ liệu đầu vào đã được đi qua. Chức năng phải lấy một đối số duy nhất kiểuState_Type. Các Kiểu dữ liệu đầu ra của tổng tỷ lệ kèo bóng đá được định nghĩa là Trả về loại chức năng này. Nếu nhưffunckhông được chỉ định, sau đó Giá trị trạng thái kết thúc được sử dụng làm kết quả của tổng tỷ lệ kèo bóng đá và Loại đầu ra làState_Type.
Cài đặt ban đầu cho giá trị trạng thái. Điều này phải được một hằng số theo nghĩa đen trong biểu mẫu được chấp nhận cho loại dữ tỷ lệ kèo bóng đáState_Type. Nếu không được chỉ định, giá trị tỷ lệ kèo bóng đá bắt đầu null.
Tạo tổng tỷ lệ kèo bóng đáCho phép người dùng hoặc
Lập trình viên để mở rộngPostgreSQLchức năng bằng cách xác định các hàm tổng tỷ lệ kèo bóng đá mới. Một số tổng tỷ lệ kèo bóng đá
Chức năng cho các loại cơ sở nhưmin (số nguyên)
vàAVG (độ chính xác gấp đôi)
đã được cung cấp trong
Phân phối cơ sở. Nếu một người định nghĩa các loại mới hoặc cần một
chức năng tổng tỷ lệ kèo bóng đá chưa được cung cấp, sau đóTạo tổng tỷ lệ kèo bóng đácó thể được sử dụng để cung cấp mong muốn
đặc trưng.
Một hàm tổng tỷ lệ kèo bóng đá được xác định bởi tên và dữ liệu đầu vào của nó kiểu. Hai tập tỷ lệ kèo bóng đá có thể có cùng tên nếu chúng hoạt động trên Các loại đầu vào khác nhau. Để tránh sự nhầm lẫn, đừng làm hàm thông thường của cùng tên và loại dữ liệu đầu vào dưới dạng tổng tỷ lệ kèo bóng đá.
Hàm tổng tỷ lệ kèo bóng đá được tạo từ một hoặc hai bình thường Chức năng: Hàm chuyển đổi trạng tháiSFUNCvà Tính toán cuối cùng tùy chọn chức năngffunc. Chúng được sử dụng như theo sau:
SFUNC(trạng thái nội bộ, dữ tỷ lệ kèo bóng đá tiếp theo) --- trạng thái tiếp theoffunc(trạng thái nội bộ) --- Tổng tỷ lệ kèo bóng đá-giá trị
PostgreSQLTạo a Biến tạm thời của kiểu dữ tỷ lệ kèo bóng đáSTYPEĐể giữ trạng thái bên trong hiện tại của Tổng tỷ lệ kèo bóng đá. Tại mỗi mục dữ liệu đầu vào, quá trình chuyển đổi trạng thái Hàm được gọi để tính toán giá trị trạng thái nội bộ mới. Sau khi tất cả dữ liệu đã được xử lý, chức năng cuối cùng là được gọi một lần để tính toán giá trị đầu ra của tổng tỷ lệ kèo bóng đá. Nếu có không phải là hàm cuối cùng thì giá trị trạng thái kết thúc được trả về as-is.
Hàm tổng tỷ lệ kèo bóng đá có thể cung cấp một điều kiện ban đầu, đó là là, một giá trị ban đầu cho giá trị trạng thái bên trong. Đây là được chỉ định và lưu trữ trong cơ sở dữ liệu dưới dạng trường loạiText, nhưng nó phải là một bên ngoài tỷ lệ kèo bóng đá lệ Biểu diễn một hằng số của kiểu dữ liệu giá trị trạng thái. Nếu nó không được cung cấp thì giá trị trạng thái bắt đầu null.
Nếu chức năng chuyển đổi tỷ lệ kèo bóng đá được khai báo"Strict", thì nó không thể được gọi bằng null
đầu vào. Với chức năng chuyển tiếp như vậy, thực thi tổng tỷ lệ kèo bóng đá
hành xử như sau. Giá trị đầu vào null bị bỏ qua (chức năng
không được gọi và giá trị trạng thái trước đó được giữ lại). Nếu
Giá trị trạng thái ban đầu là NULL, sau đó giá trị đầu vào không null đầu tiên
Thay thế giá trị trạng thái và hàm chuyển tiếp được gọi
bắt đầu với giá trị đầu vào không null thứ hai. Điều này là tiện dụng cho
triển khai các tập tỷ lệ kèo bóng đá nhưMax
.
Lưu ý rằng hành vi này chỉ khả dụng khiState_Typegiống nhưinput_data_type. Khi những loại này là
khác nhau, bạn phải cung cấp một điều kiện ban đầu không có null hoặc sử dụng
Chức năng chuyển tiếp không nghiêm ngặt.
Nếu hàm chuyển đổi trạng thái không nghiêm ngặt, thì nó sẽ được gọi là vô điều kiện ở mỗi giá trị đầu vào và phải đối phó với NULL đầu vào và giá trị chuyển tiếp null cho chính nó. Điều này cho phép Tác giả tổng tỷ lệ kèo bóng đá có toàn quyền kiểm soát xử lý nulls.
Nếu hàm cuối cùng được khai báo"nghiêm ngặt", thì nó sẽ không được gọi khi
Giá trị trạng thái kết thúc là null; thay vào đó là một kết quả null sẽ được đầu ra
tự động. (Tất nhiên đây chỉ là hành vi bình thường của
các chức năng nghiêm ngặt.) Trong mọi trường tỷ lệ kèo bóng đá, chức năng cuối cùng có tùy chọn
trả lại null. Ví dụ: hàm cuối cùng choAVG
Trả về NULL khi nhìn thấy ở đó
bằng không có bộ dữ tỷ lệ kèo bóng đá đầu vào.
Tham khảo chương về các hàm tổng tỷ lệ kèo bóng đá trongHướng dẫn lập trình viên PostgreSQLĐể hoàn thành Ví dụ về cách sử dụng.