SQL进阶技巧:如何按照固定尺寸(固定区间)对数据进行打分类标签?

时间:2024-07-16 13:00:05

目录

0 问题引入

应用案例1

应用案例2

 小结


0 问题引入

   在日常数据分析中,经常会遇到数据产品经理或数据分析师提出这样的需求,比如按照某一给定的区间或数据范围对数据进行分类标签,而遇到这样的问题,好多同学感觉SQL做起来有点困难或无从下手,其实面对这样的问题笔者早在其他文章中已经进行总结,笔者将这类问题归结为分桶问题,而分桶问题又分为两类,一类是桶个数一定,但是桶尺寸不固定的分桶,一类是桶尺寸一定,但是桶个数不一定的分桶,针对这两种分桶的方式,我们分别给出如下解决方案。

第一类:桶个数一定,桶尺寸不定,用函数 ntile(),ntile函数中传的参数即为需要分桶的个数。具体需要根据需求分析出桶个数,比如需求中求按照收入前10%的人群进行圈选,此时就需要对收入字段进行分桶,分多少桶?由于需求中已经给出10%的数字,那么桶的个数即为10,桶号为1的标签即为所要的结果。

第二类:桶个数不固定,桶尺寸固定,这类问题,往往用公式法。此类的需求往往都是给定一定的区间,比如按照某个固定区间的范围,0-10,11-20,21-30...等等,这类问题需要先分析清楚固定区间的长度是多少,如上述区间长度即为10,那么我们可以用如下公式: