
数据求前或后百分比问题(分桶思想)
语法是:ntile (num) over ([partition_clause] order_by_clause) as your_bucket_num。本题要求的是支付金额前20%的用户,通过上述ntile函数分析 可知需要分5个桶,是对数据用户支付的总金额进行标签,然后求出对应的用户。ntile()函数主要用于对数据进行分片、分桶,其算法为如果数据能均匀分配的话就按照平均分配,不能均匀分配的话,优先将数据分配到编号较小的桶中。然后可以根据桶号,选取前或后 n分之几的数据。










