處理大規模資料時,近似函數可以在保證合理準確度的情況下快速返回計算結果,提高資料處理效率。本文介紹AnalyticDB for MySQL支援的近似函數。
APPROX_DISTINCT:返回指定列中不重複值的近似個數。
APPROX_PERCENTILE:返回指定列中從小到大排序,位於指定百分比(近似)的結果。
APPROX_DISTINCT
APPROX_DISTINCT(column, [standard_error]);命令說明:返回指定列中不重複值的近似個數。
standard_error為標準誤差(選擇性參數),預設值為0.023,取值範圍[0.0040625,0.26000]。建議不要修改standard_error參數值。傳回值類型:BIGINT。
樣本:
查詢
test表age列中不重複值的近似個數。SELECT approx_distinct(age) from test;返回結果:
+-----------------------+ | approx_distinct(age) | +-----------------------+ | 4 | +-----------------------+說明APPROX_DISTINCT函數的傳回值為近似值,樣本僅供參考。
APPROX_PERCENTILE
APPROX_PERCENTILE(column, percentage);命令說明:返回指定列中從小到大排序,位於指定百分比(近似)的結果,該函數不會對指定列中重複值進行去重。percentage為指定的百分比,取值範圍[0,1],例如指定percentage為1時,會返回該列中最大的值。
傳回值類型:BIGINT。
樣本:
查詢
SELECT APPROX_PERCENTILE(age, 0.4) FROM test;返回結果如下:
+------------------------------+ | APPROX_PERCENTILE(age, 0.4) | +------------------------------+ | 20 | +------------------------------+