大查询分位数

时间:2018-07-17 14:49:36

标签: sql statistics google-bigquery google-cloud-datalab

我想使用Big Query和Datalab进行异常检测。 MIN和MAX给我相同的值,但分位数却不同。大查询给了我

Row f0_    f1_      approx_quantiles     
1   0.01   820.55   0.01     
                    190.04   
                    820.55

这似乎是错误的,它们只是最小值和最大值。 Datalab给我其他分位数。

我做到了:

SELECT MIN(Menge),MAX(Menge),APPROX_QUANTILES(Menge,2)  AS approx_quantiles  FROM `nifty-stage-155512.de_veolia_vus_dev_views.tank_data_4`

其他人是否经历过相同的事情或有人有解决方案?

修改

从datalab我得到

0.25     61.645
0.50    190.000
0.75    253.000
Name: MENGE, dtype: float64

2 个答案:

答案 0 :(得分:2)

我有点困惑。您要第25位和第75位吗?从文档中。

  

APPROX_QUANTILES

     

APPROX_QUANTILES([DISTINCT]表达式,编号[{IGNORE | RESPECT} NULLS])

     

说明

     

返回一组表达式值的近似边界,其中number表示要创建的分位数。该函数返回一个由数字+ 1个元素组成的数组,其中第一个元素是近似最小值,最后一个元素是近似最大值。

如果这样,您需要更多的分位数,则需要增加“数字”的值。所以4会给你[min,25th,50th,75th,max]

答案 1 :(得分:1)

也可能是解决方案:

SELECT percentiles[offset(25)], percentiles[offset(50)], percentiles[offset(75)]
FROM (SELECT APPROX_QUANTILES(Menge, 100) percentiles FROM