前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你看过多少套房子?

你看过多少套房子?

原创
作者头像
猴子数据分析
修改2021-08-27 11:55:51
5130
修改2021-08-27 11:55:51
举报
文章被收录于专栏:猴子数据分析
图片
图片

【面试题】

某房源平台有两张表来记录用户信息、和用户查看房源信息。

用户表(用户号、用户注册时间)。房源浏览日志表,字段有日志号,用户号,房源号,浏览日期。

图片
图片

分析出当日浏览房源10套以上并且注册超过一年的用户

【解题思路】

我们用逻辑树分析方法来拆解下问题:当日浏览房源10套以上并且注册超过一年的用户。这里我们可以看出用户需要满足两个条件:

1)当日浏览房源10套以上,浏览信息在浏览表中

2)注册时间超过一年,注册信息在注册表中

涉及2张及以上表的查询时,需想到《猴子 从零学会SQL》里讲到的,要用到多表联结。

使用哪种联结呢?

这里我们的条件在两边都是需要满足的,所以使用内联结(inner join),两表的联结字段是用户号,如下图所示

图片
图片

两表联结的SQL

图片
图片

两表联结后,再来看题目要求的条件。

1.注册时间超过一年

这里对注册时间用where子句筛选。这里要用到计算日期的函数(date_sub ),语法如下:

图片
图片

例子:date_sub(NOW(),INTERVAL 1 year) 代表现在的日期减去一年,也就是去年的这个时候

2.当日浏览房源10套以上

这句话翻译成大白话就是:每个用户、每天浏览房源10套以上。

涉及到“每个”要想到用《猴子 从零学会SQL》里讲过的用“分组汇总”解决这类问题。

按“每个用户、每天”分组,汇总(对房源进行计数)。

查询结果

图片
图片

【本题考点】

1.涉及到多个表,要想到用多表查询,包括使用哪种联结,使用哪些字段联结。要能熟练应用《猴子 从零学会SQL》里的下图

图片
图片

2.涉及到“每个”这类问题要想到用“分组汇总”。涉及到“每个+排名”问题,要想到用窗口函数

【举一反三】

下图是学生表、成绩表和课程表,找出哪些学生单科成绩超过80分,给出姓名、课程名称和成绩

图片
图片

参考答案

查询结果:

图片
图片
图片
图片

推荐:如何从零学会SQL?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档