【面试题】
“房源表”是各个城市每天新增房源的名单,包括房源号、城市、录入时间。现在需要分析出每天每个城市有多少新增房源?
【解题思路】
1.如何拆解问题?
我们使用多维度拆解分析方法,来拆解一下问题:每天每个城市有多少新增房源
1)要求的维度:每天、每个城市
2)要求的数值:新增房源个数
所以这里是一个典型的分组汇总问题。将数据按照每天、每个城市的维度分组(group by),分组后对房源的个数进行汇总(count求房源号这一列有多少行)
2.如何分组?
按“每天”分组后如下图:
在第一步的基础上,按“每个城市”分组如下图:
这样就完成了从时间和城市两个维度的分组拆解,分组在SQL中用group by
3.如何汇总?
现在组已经分好了,我们只需要看每个分组中的房源号个数计数,就完成了分组计数。
计数在SQL中用count(计数字段)来表示,这里的count就是一种聚合函数,与分组函数group by常常搭配使用。
查询结果:
【本题考点】
1.当遇到“每个”问题,要想到《猴子 从零学会SQL》里讲过的用“汇总分析”解决
2.考查对聚合函数的了解,count的实际用法,常见的汇总函数如下
【举一反三】
房源表如下,找出每天每个城市的新增房源数大于1的城市、日期和新增房源数
参考答案:分组后对数据筛选用having子句
查询结果:
推荐:如何从零学会SQL?