数分面试真题| 滴滴&小破站

滴滴新鲜热乎真题


太难了呜呜呜
为用户提供打车服务。现有四张表,分别是
driver(司机数据)表,

online_time(在线时长数据)表,

order_info(订单数据)表,


city(城市匹配数据)表。


问题如下:
  1. 提取2020年8月各城市每天的司机数、快车订单量和快车流水数据。
  2. 提取2020年8月和9月,每个月的北京市新老司机(首单日期在当月为新司机)的司机数、在线时长和TPH(订单量/在线时长)数据。
  3. 分别提取司机数大于20,司机总在线时长大于2小时,订单量大于1,乘客数大于1的城市名称数据。

(1)提取2020年8月各城市每天的司机数

解题思路

  • 限定时间在2020年8月,可以使用between and;
  • 各城市每天是按照城市和日期(每天)进行分组;
  • 司机数是使用count(distinct 司机id)来计数,如果司机id是主键的话,可以不使用distinct。

最终答案如下:

SELECT b.城市名称,a.日期,count(DISTINCT 司机id) as 司机数 FROM driver as a LEFT JOIN city as b on a.城市id=b.城市id WHERE 日期 BETWEEN '2020-08-01' and '2020-08-31' GROUP BY a.城市id, a.日期; 

(2)提取2020年8月各城市每天的快车订单量

解题思路

  • 时间限定和前面的一样,也可以使用date_format来限定日期;
  • 快车,则需要从产品线id中提取出代表快车的编号,如前面说的,3代表快车,可以使用where来限定id=3;
  • 订单量根据订单id进行计算。

答案如下:

SELECT c.城市名称,a.日期,COUNT(DISTINCT 订单id) FROM order_info as a LEFT JOIN driver as b on a.司机id=b.司机id LEFT JOIN city as c on b.城市id=c.城市id WHERE 产品线id='3' and DATE_FORMAT(a.日期,'%Y-%m')='2020-08' GROUP BY b.城市id,a.日期; 

(3)提取2020年8月各城市每天的快车流水数据

解题思路

  • 大部分解题思路和前面一样,有变化的是流水数据,流水数据是需要使用sum来进行计算得到的。
SELECT c.城市名称,a.日期,SUM(流水) as 流水数据 FROM order_info as a LEFT JOIN driver as b on a.司机id=b.司机id LEFT JOIN city as c on b.城市id=c.城市id WHERE 产品线id='3' and DATE_FORMAT(a.日期,'%Y-%m')='2020-08' GROUP BY b.城市id,a.日期;


B站的题

面试官直接给了2表,表名自己定义吧。 重要的是思路。
表1 用户访问表

用户id 访问日期 是否是会员 观看视频id


表2视频信息表

视频id 视频名称 视频类型

1.统计某日 首次开通会员的人数

2.计算鬼畜区的用户里,有多少用户看过汽车,番剧区用户里,有多少用户看过放映厅?(1分)

3.哪一类的视频观看人数最多(2分)

4.某天最受欢迎的视频类型是什么?(2分)


推荐大家先做一下牛客网的SQL实战

基础差一点的可以先做基础入门的


我组了一个数据分析交流群,数分的同学可以加,可以来交流思路。




#数分#
全部评论
DBA? 什么岗位
点赞 回复
分享
发布于 2021-10-04 05:17
敢问滴滴哪个部门?这是笔试题还是面试题?
点赞 回复
分享
发布于 2021-10-04 12:35
饿了么
校招火热招聘中
官网直投
已投递,感谢楼主内推
点赞 回复
分享
发布于 2021-10-06 20:36

相关推荐

8 51 评论
分享
牛客网
牛客企业服务