APPROXIMATE PERCENTILE_DISC 函數 - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

APPROXIMATE PERCENTILE_DISC 函數

APPROXIMATE PERCENTILE_DISC 是採用離散分佈模型的反向分佈函數。它採用百分位數值和排序規格,且會傳回給定集裡的一個元素。近似法可讓函數執行較快,其相對錯誤率低到約 0.5%。

對於給定的百分位數值,APPROXIMATE PERCENTILE_DISC 使用分位數摘要演算法,大致估計 ORDER BY 子句中的表達式的離散百分位數。APPROXIMATE PERCENTILE_DISC 傳回的值具有大於或等於百分位數的最小累積分佈值 (根據相同的排序規格)。

APPROXIMATE PERCENTILE_DISC 是僅限於運算節點的函數。如果查詢未參考使用者定義的資料表或 AWS Clean Rooms 系統資料表,函式會傳回錯誤。

語法

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

引數

percentile

介於 0 和 1 之間的數值常數。計算時會忽略 Null。

WITHIN GROUP ( ORDER BY expr)

此子句指定要排序和計算百分位數的數值或日期/時間值。

傳回值

資料類型與 WITHIN GROUP 子句中的 ORDER BY 表達式相同。

使用須知

如果 APPROXIMATE PERCENTILE_DISC 陳述式包含 GROUP BY 子句,則會限制結果集。限制會根據節點類型和節點數目而不同。如果超出限制,函數會失敗並傳回下列錯誤。

GROUP BY limit for approximate percentile_disc exceeded.

如果您需要評估的組數超過限制所允許,請考慮使用 PERCENTILE_CONT 函數

範例

下列範例傳回排名前 10 個日期的銷售數量、銷售總計及第五個百分位數值。

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00