PERCENTILE_DISC là hàm phân phối nghịch đảo giả định mô hình phân phối rời rạc. Nó nhận một giá trị phần trăm và một đặc tả sắp xếp và trả về một phần tử từ tập hợp đã cho
Đối với một giá trị phân vị P đã cho, PERCENTILE_DISC sắp xếp các giá trị của biểu thức trong mệnh đề ORDER BY và trả về giá trị có giá trị phân phối tích lũy nhỏ nhất [đối với cùng thông số sắp xếp] lớn hơn hoặc bằng P
Bạn chỉ có thể chỉ định mệnh đề THAM GIA trong mệnh đề QUÁ
PERCENTILE_DISC là chức năng chỉ dành cho nút tính toán. Hàm trả về lỗi nếu truy vấn không tham chiếu bảng do người dùng xác định hoặc bảng hệ thống Amazon Redshift
cú pháp
PERCENTILE_DISC [ percentile ]
WITHIN GROUP [ORDER BY expr]
OVER [ [ PARTITION BY expr_list ] ]
tranh luận
phân vị
Hằng số giữa 0 và 1. Nulls được bỏ qua trong tính toán
TRONG NHÓM [ĐẶT HÀNG THEO expr]Chỉ định các giá trị số hoặc ngày/giờ để sắp xếp và tính phần trăm trên
KẾT THÚCChỉ định phân vùng cửa sổ. Mệnh đề OVER không được chứa thứ tự cửa sổ hoặc đặc tả khung cửa sổ
Hàm PERCENTILE_DISC trả về giá trị hàng tương ứng với giá trị phần trăm được chỉ định từ kết quả sắp xếp theo mục sắp xếp
Nếu Tỷ lệ phần trăm được xác định chỉ nằm giữa các hàng, hãy trả về giá trị nhỏ nhất trong số các hàng vượt quá Tỷ lệ phần trăm được chỉ định
Hàm này tương tự như hàm PERCENTILE_CONT. Để biết sự khác biệt của chức năng này, hãy xem " "
Sắp xếp sắp xếp
PERCENTILE_DISC [phần trăm] TRONG VÒNG NHÓM [ORDER BY [ASC | DESC]] OVER [[PARTITION BY ]]
tranh luận
phần trăm
Chỉ định một phần giá trị phần thưởng. Only value type of DOUBLE in range from 0 to 1. Bạn không thể sử dụng cột hoặc biểu thức
biểu hiện
Chỉ định dạng cột NUMERIC hoặc biểu thức bạn muốn truy xuất. Giá trị NULL bị bỏ qua
Bạn có thể chỉ định thứ tự tăng dần [ASC] hoặc giảm dần [DESC] cho . Nếu không xác định, thứ tự tăng dần được sử dụng.
Nếu một phân vùng được chỉ định, các số hàng được sắp xếp cho mỗi phân vùng
phân vùng_list
Chỉ định một mục phân vùng [cột hoặc biểu thức]
Nếu một phân vùng được chỉ định, giá trị hàng tương ứng với giá trị phần trăm được tính cho từng phân vùng. Nếu không có mục phân vùng nào được chỉ định, giá trị hàng tương ứng với giá trị phần trăm được tính bằng cách sử dụng toàn bộ bảng làm phân vùng
Giá trị trả lại
Trả về giá trị hàng hóa tương đương với giá trị phần thưởng. Giá trị trả về là kiểu NUMERIC không có độ chính xác
Thí dụ
Bảng sau đây cho thấy một ví dụ về việc thực thi một câu lệnh SQL
CHỌN Tên, Lớp, Điểm TỪ Lớp;
Mười
Class
Ghi bàn
Hoa anh đào
A
95
mẫu đơn
A
90
Hoa sen
A
80
Hoa hướng dương
B
70
diên vĩ
B
85
màu tím
C
80
ví dụ 1
Tính giá trị tương đương với 45% hàng đầu theo thứ tự giảm dần của "Điểm"
CHỌN PERCENTILE_DISC [0,45] TRONG VÒNG NHÓM [ĐẶT HÀNG THEO ĐIỂM MÔ TẢ] NHƯ PERCENTILE_DISC TỪ Lớp;
Bảng 1. Kết quả thực thi
PERCENTILE_DISC
85
Ví dụ 2
Sắp xếp "Điểm" theo thứ tự giảm dần cho từng "Lớp" và tính giá trị tương đương với 45% hàng đầu
CHỌN Lớp, PERCENTILE_DISC [0,45] TRONG VÒNG NHÓM [ĐẶT HÀNG THEO ĐIỂM MÔ TẢ] NHƯ PERCENTILE_DISC TỪ NHÓM Lớp THEO Lớp;
Bảng 2. Kết quả thực thi
Class
PERCENTILE_DISC
A
90
B
85
C
80
Ví dụ 3
Sắp xếp "Điểm" theo thứ tự giảm dần và tính giá trị tương đương với 45% hàng đầu. Giá trị tương đương với 45% hàng đầu được trả về trên tất cả các hàng
CHỌN Tên, Lớp, Điểm, PERCENTILE_DISC [0,45] TRONG VÒNG NHÓM [ĐẶT HÀNG THEO ĐIỂM MÔ TẢ] HƠN [] NHƯ PERCENTILE_DISC_OVER TỪ Lớp;
Bảng 3. Kết quả thực thi
Mười
Class
Ghi bàn
PERCENTILE_DISC_OVER
Hoa anh đào
A
95
85
mẫu đơn
A
90
85
diên vĩ
B
85
85
Hoa sen
A
80
85
màu tím
C
80
85
Hoa hướng dương
B
70
85
Ví dụ 4
Sắp xếp "Điểm" theo thứ tự giảm dần cho từng "Lớp" và tính giá trị tương đương với 45% hàng đầu. Giá trị tương đương với 45% hàng đầu được trả về trên tất cả các hàng
CHỌN Tên, Lớp, Điểm, PERCENTILE_DISC [0,45] TRONG VÒNG NHÓM [ĐẶT HÀNG THEO ĐIỂM MÔ TẢ] HƠN [PHẦN THEO Lớp] NHƯ PERCENTILE_DISC_OVER TỪ Lớp;
Bảng 4. Kết quả thực thi
Mười
Class
Ghi bàn
PERCENTILE_DISC_OVER
Hoa anh đào
A
95
90
mẫu đơn
A
90
90
Hoa sen
A
80
90
diên vĩ
B
85
85
Hoa hướng dương
B
70
85
màu tím
C
80
80
Sự khác biệt giữa hàm PERCENTILE_CONT và hàm PERCENTILE_DISC
Hàm PERCENTILE_CONT và PERCENTILE_DISC tương đương nhau về mặt chức năng, nhưng hoạt động khác nhau nếu giá trị phần trăm được xác định chỉ nằm giữa các hàng
Hàm PERCENTILE_CONT trả về giá trị được nội suy cho các hàng trước đó và tiếp theo, và hàm PERCENTILE_DISC trả về giá trị thấp nhất trong số các hàng vượt quá giá trị phần thưởng được chỉ định.
Ví dụ. nếu bạn cố gắng lấy giá trị 50% từ các giá trị hàng 1, 2, 3 và 4 tương ứng, 50% sẽ nằm trong khoảng từ 2 đến 3. Trong trường hợp này, giá trị trả về của mỗi hàm là khác nhau như sau