ITPub博客

首页 > 数据库 > 数据库开发技术 > 如何分析房子?

如何分析房子?

原创 数据库开发技术 作者:猴子数据分析 时间:2021-08-12 21:00:00 0 删除 编辑


【面试题】


“房源表”是各个城市每天新增房源的名单,包括房源号、城市、录入时间。现在需要分析出每天每个城市有多少新增房源?



【解题思路】


1.如何拆解问题?


我们使用多维度拆解分析方法,来拆解一下问题:每天每个城市有多少新增房源

 

1)要求的维度:每天、每个城市

2)要求的数值:新增房源个数


所以这里是一个典型的分组汇总问题。将数据按照每天、每个城市的维度分组(group by),分组后对房源的个数进行汇总(count求房源号这一列有多少行)


2.如何分组?



按“每天”分组后如下图:




在第一步的基础上,按“每个城市”分组如下图:



这样就完成了从时间和城市两个维度的分组拆解,分组在SQL中用group by


select a.录入时间,a.城市from 房源表group by 录入时间,城市;


3.如何汇总?


现在组已经分好了,我们只需要看每个分组中的房源号个数计数,就完成了分组计数。


计数在SQL中用count(计数字段)来表示,这里的count就是一种聚合函数,与分组函数group by常常搭配使用。


select a.录入时间,a.城市,       count(a.房源号) as 个数from 房源表 as agroup by 录入时间,a.城市;


查询结果:



【本题考点】


1.当遇到“每个”问题,要想到《猴子 从零学会SQL》里讲过的用“汇总分析”解决


2.考查对聚合函数的了解,count的实际用法,常见的汇总函数如下



【举一反三】


房源表如下,找出每天每个城市的新增房源数大于1的城市、日期和新增房源数



参考答案:分组后对数据筛选用having子句



select a.录入时间,a.城市,       count(distinct a.房源号) as 个数from 房源表 as agroup by 录入时间,a.城市having count(distinct a.房源号)>1;


查询结果:




推荐:如何从零学会SQL?


原文作者:猴子数据分析;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-01-16

  • 博文量
    865
  • 访问量
    345538