Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.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ại​​Phiê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ế.

9.21. soi kèo bóng đá truoctran sổ

Hàm soi kèo bóng đá truoctran sổCung cấp khả soi kèo bóng đá truoctran thực hiện các tính toán trên các bộ hàng có liên quan đến hàng truy vấn hiện tại. Nhìn thấyPhần 3.5Để giới thiệu về tính soi kèo bóng đá truoctran này vàPhần 4.2.8Để biết chi tiết cú pháp.

Các soi kèo bóng đá truoctran sổ tích hợp được liệt kê trongBảng 9.57. Lưu ý rằng các chức soi kèo bóng đá truoctran nàyphảiĐược gọi bằng cú pháp soi kèo bóng đá truoctran sổ, tức là, mộtOvermệnh đề là bắt buộc.

Ngoài các chức soi kèo bóng đá truoctran này, bất kỳ tổng hợp thống kê hoặc mục đích tổng hợp hoặc định hướng tổng hợp được xác định bởi người dùng (nghĩa là, không được đặt hàng tập hợp hoặc tập hợp giả thuyết) có thể được sử dụng làm hàm cửa sổ; nhìn thấyPhần 9.20Đối với một danh sách các tập hợp tích hợp. Các chức năng tổng hợp chỉ hoạt động như các soi kèo bóng đá truoctran sổ khi mộtOvermệnh đề tuân theo cuộc gọi; Nếu không, chúng hoạt động như các tập hợp không soi kèo bóng đá truoctran sổ và trả lại một hàng cho toàn bộ tập hợp.

Bảng 9.57. soi kèo bóng đá truoctran sổ đa năng

function Loại trả lại Mô tả
row_number () Bigint Số lượng soi kèo bóng đá truoctran hiện tại trong phân vùng của nó, đếm từ 1
xếp hạng () Bigint Xếp hạng của soi kèo bóng đá truoctran hiện tại với các khoảng trống; Giống nhưRow_Numbercủa đầu tiên của nó
dense_rank () Bigint Xếp hạng của hàng hiện tại không có khoảng trống; chức soi kèo bóng đá truoctran này đếm các nhóm ngang hàng
phần trăm_rank () Double Precision Xếp hạng tương đối của soi kèo bóng đá truoctran hiện tại: (Xếp hạng- 1) / (tổng số phân vùng - 1)
cume_dist () Double Precision Phân phối tích lũy: (số lượng phân vùng trước hoặc ngang soi kèo bóng đá truoctran với soi kèo bóng đá truoctran hiện tại) / tổng số phân vùng
ntile (num_buckets Số nguyên) Số nguyên Số nguyên từ 1 thành giá trị đối số, chia phân vùng càng tốt
LAG (giá trị AnyEuity[,Offset Số nguyên[,mặc định AnyEuity]]) cùng loại vớigiá trị returngiá trịđược đánh giá ở soi kèo bóng đá truoctran đó làOffsetsoi kèo bóng đá truoctran trước soi kèo bóng đá truoctran hiện tại trong phân vùng; Nếu không có soi kèo bóng đá truoctran như vậy, thay vào đó hãy trả vềMặc định(phải cùng loại vớigiá trị). Cả haiOffsetMặc địnhđược đánh giá liên quan đến soi kèo bóng đá truoctran hiện tại. Nếu bị bỏ qua,OffsetMặc định là 1 vàMặc địnhđến NULL
chì (giá trị AnyEuity[,Offset Số nguyên[,Mặc định AnyEuity]]) cùng loại vớigiá trị returngiá trịđược đánh giá ở soi kèo bóng đá truoctran đó làOffsetsoi kèo bóng đá truoctran sau soi kèo bóng đá truoctran hiện tại trong phân vùng; Nếu không có soi kèo bóng đá truoctran như vậy, thay vào đó hãy trả vềMặc định(phải cùng loại vớigiá trị). Cả haiOffsetMặc địnhđược đánh giá liên quan đến soi kèo bóng đá truoctran hiện tại. Nếu bị bỏ qua,OffsetMặc định là 1 vàMặc địnhto null
First_value (giá trị any) cùng loại vớigiá trị returngiá trịĐược đánh giá ở hàng là hàng đầu tiên của khung soi kèo bóng đá truoctran sổ
last_value (giá trị any) cùng loại vớigiá trị returngiá trịĐược đánh giá ở hàng là hàng cuối cùng của khung soi kèo bóng đá truoctran sổ
nth_value (giá trị bất kỳ, nth Số nguyên) cùng loại vớigiá trị returngiá trịđược đánh giá ở soi kèo bóng đá truoctran đó lànthHàng của khung soi kèo bóng đá truoctran sổ (đếm từ 1); null nếu không có hàng như vậy

Tất cả các chức soi kèo bóng đá truoctran được liệt kê trongBảng 9.57phụ thuộc vào thứ tự sắp xếp được chỉ định bởiĐặt soi kèo bóng đá truoctran bởimệnh đề của định nghĩa soi kèo bóng đá truoctran sổ liên quan. Hàng không khác biệt khi chỉ xem xétĐặt soi kèo bóng đá truoctran bởiCác cột được cho làPeers. Bốn chức soi kèo bóng đá truoctran xếp hạng (bao gồmcume_dist) được định nghĩa để chúng đưa ra câu trả lời tương tự cho tất cả các soi kèo bóng đá truoctran ngang soi kèo bóng đá truoctran.

Lưu ý rằngFirst_value, last_valuenth_valueChỉ xem xét các soi kèo bóng đá truoctran trongkhung soi kèo bóng đá truoctran sổ, theo mặc định có chứa các hàng từ đầu phân vùng thông qua ngang hàng cuối cùng của hàng hiện tại. Điều này có khả soi kèo bóng đá truoctran cho kết quả không có ích cholast_valuevà đôi khi cũngnth_value. Bạn có thể xác định lại khung bằng cách thêm một đặc tả khung phù hợp (phạm vi, soi kèo bóng đá truoctranhoặcNhóm) đếnOvermệnh đề. Nhìn thấyPhần 4.2.8Để biết thêm thông tin về thông số kỹ thuật khung.

Khi một hàm tổng hợp được sử dụng làm hàm soi kèo bóng đá truoctran sổ, nó tổng hợp trên các hàng trong khung soi kèo bóng đá truoctran sổ của hàng hiện tại. Một tổng hợp được sử dụng vớiđặt soi kèo bóng đá truoctran bởiVà định nghĩa khung soi kèo bóng đá truoctran sổ mặc định tạo ra AHồichạy tổngxôngloại hành vi, có thể hoặc không phải là những gì mong muốn. Để có được tổng hợp trên toàn bộ phân vùng, hãy bỏ quaĐặt soi kèo bóng đá truoctran bởihoặc sử dụngsoi kèo bóng đá truoctran giữa không bị ràng buộc trước và không bị ràng buộc sau. Các thông số kỹ thuật khác có thể được sử dụng để có được các hiệu ứng khác.

Lưu ý

Tiêu chuẩn SQL xác định ATôn trọng NULLShoặcbỏ qua nullsTùy chọn chochì, LAG, First_value, last_valuenth_value. Điều này không được triển khai trongPostgreSQL: Hành vi luôn giống như mặc định của tiêu chuẩn, cụ thể làTôn trọng NULLS. Tương tự như vậy, tiêu chuẩn củaTừ đầu tiênhoặcTừ lần cuốiTùy chọn chonth_valuekhông được triển khai: Chỉ mặc địnhTừ đầu tiênHành vi được hỗ trợ. (Bạn có thể đạt được kết quả củatừ cuốibằng cách đảo ngượcĐặt soi kèo bóng đá truoctran bởiĐặt soi kèo bóng đá truoctran.)

cume_distTính tỷ lệ các soi kèo bóng đá truoctran phân vùng nhỏ hơn hoặc bằng soi kèo bóng đá truoctran hiện tại và các đồng nghiệp của nó, trong khiphần trăm_rankTính tỷ lệ của các soi kèo bóng đá truoctran phân vùng nhỏ hơn soi kèo bóng đá truoctran hiện tại, giả sử soi kèo bóng đá truoctran hiện tại không tồn tại trong phân vùng.