【面试题】
评分表里记录了各个城市房源的评分,包括房源号、城市、分数。
为了帮助用户根据评分找到优质房源,现在领导要你找出分数(满分10分)在0-5分,5-7分,7-9分,9分及以上分别有多少。
【解题思路】
1.拆解问题
使用逻辑树分析方法来拆解问题:求分数在0-5分,5-7分,7-9分,9分及以上分别有多少
1)将评分表按照分数进行分组,按照0-5分,5-7分,7-9分,9分四个区间进行分组
2)再对每个区间的房源进行计数
2.如何按条件拆分成多个组呢?
根据分数所在的区间进行分组,以下是一个简单的示意图
这里会有两个常见的误区:
1)分组就想到用group by,但是在这里是不行的。
因为平时使用groupby分组的字段是我们直接用的字段,而这里的分数并不是我们最终分组的区间字段0-5、5-7这样。
如果直接用分组(group by),就会把相同的分数分为一组,与我们要求的分数段是不相符的。
2)看到条件就想到用where,但是在这里是多条件的情况。如果我们使用where分数值1,取新值1 ;当字段1