题解 | #SQL 19.2021年国庆在北京接单3次及以上的司机统计信息#

2021年国庆在北京接单3次及以上的司机统计信息

http://www.nowcoder.com/practice/992783fd80f746d49e790d33ee537c19

2021年国庆在北京接单3次及以上的司机统计信息

明确题意:

统计2021年国庆7天期间在北京市接单至少3次的司机的平均接单数和平均兼职收入(暂不考虑平台佣金,直接计算完成的订单费用总额),结果保留3位小数。


问题分解:

  • 计算2021国庆在北京接单至少3次的司机信息:
    • 关联接单表和打车记录表:tb_get_car_order JOIN tb_get_car_record USING(order_id)
    • 筛选北京国庆期间的记录:WHERE city = "北京" and DATE_FORMAT(order_time,"%Y%m%d") BETWEEN '20211001' AND '20211007'
    • 按司机ID分组:GROUP BY driver_id
    • 统计每个司机的接单量和接单收入:COUNT(order_id) as order_num, SUM(fare) as income
    • 筛选接单至少3次的分组(司机):HAVING COUNT(order_id) >= 3
  • 基于上述结果,统计他们的平均接单量和平均收入:
    • 平均接单量:AVG(order_num) as avg_order_num
    • 平均收入:AVG(income) as avg_income
  • 保留3位小数:ROUND(x, 3)

细节问题:

  • 表头重命名:as

完整代码:

SELECT "北京" as city, ROUND(AVG(order_num), 3) as avg_order_num,
    ROUND(AVG(income), 3) as avg_income
FROM (
    SELECT driver_id, COUNT(order_id) as order_num, SUM(fare) as income
    FROM tb_get_car_order
    JOIN tb_get_car_record USING(order_id)
    WHERE city = "北京" and DATE_FORMAT(order_time,"%Y%m%d") BETWEEN '20211001' AND '20211007'
    GROUP BY driver_id
    HAVING COUNT(order_id) >= 3
) as t_driver_info;
SQL大厂真题 文章被收录于专栏

大厂真题手把手教你怎么解~

全部评论
妙啊!
1 回复 分享
发布于 2022-05-17 15:57
在子查询,可以直接select city么?为何需要‘北京’ as city呢?
1 回复 分享
发布于 2022-05-06 15:21
select city, round(count(driver_id)/count(distinct driver_id),3) as avg_order_num, round(sum(fare)/count(distinct driver_id),3) as avg_income from ( select city,driver_id,fare from tb_get_car_record r right join tb_get_car_order o on r.order_id=o.order_id where date (order_time) between '2021-10-01' and '2021-10-07' and city ='北京' and driver_id in ( select driver_id from tb_get_car_order group by driver_id having count(*)>=3) ) as d 有没有大佬帮我看一下这哪里有问题?
点赞 回复 分享
发布于 2024-12-08 15:52 广东
select "北京" as city, round(avg(num),3) avg_order_num, avg(income) avg_income from( select driver_id, count(order_id) num, sum(fare) income from tb_get_car_record right join tb_get_car_order using(order_id) where city = '北京' and order_time between'2021-10-01' and '2021-10-07' group by driver_id having num > 3 )t1
点赞 回复 分享
发布于 2023-06-05 17:38 广东
用order_id关联表
点赞 回复 分享
发布于 2023-02-09 11:05 上海
select '北京' as city,round(avg(order_num),3) as avg_order_num,round(avg(fare_num),3) as avg_income from ( select driver_id,count(a.order_id) order_num,sum(fare) as fare_num from tb_get_car_order a left join tb_get_car_record b on a.uid=b.uid where city='北京' and date(event_time) between '2021-10-01' and '2021-10-07' and order_time is not null group by driver_id having count(a.order_id)>=3 ) t; 请问这样为什么不对呢
点赞 回复 分享
发布于 2022-10-15 11:08 浙江
有一个缺陷,SUM(ifnull(fare,0))更严谨
点赞 回复 分享
发布于 2022-02-18 11:03

相关推荐

notbeentak...:孩子,说实话,选择很重要,可能你换一个方向会好很多,但是现在时间不太够了,除非准备春招
点赞 评论 收藏
分享
10-20 11:11
辽宁大学 营销
点赞 评论 收藏
分享
评论
38
2
分享

创作者周榜

更多
正在热议
更多
# 你的mentor是什么样的人? #
4418次浏览 33人参与
# 你觉得mentor喜欢什么样的实习生 #
10659次浏览 297人参与
# 未岚大陆求职进展汇总 #
38129次浏览 114人参与
# 帮我看看,领导说这话什么意思? #
6595次浏览 26人参与
# 26届秋招公司红黑榜 #
13069次浏览 44人参与
# 怎么给家人解释你的工作? #
1587次浏览 17人参与
# 智慧芽求职进展汇总 #
25820次浏览 108人参与
# 没有家庭托举的我是怎么找工作的 #
12612次浏览 160人参与
# 求职低谷期你是怎么度过的 #
5394次浏览 96人参与
# 实习必须要去大厂吗? #
146803次浏览 1541人参与
# 从哪些方向判断这个offer值不值得去? #
6719次浏览 95人参与
# 同bg的你秋招战况如何? #
158865次浏览 927人参与
# 度小满求职进展汇总 #
10191次浏览 53人参与
# 校招泡的最久的公司是哪家? #
4794次浏览 23人参与
# 面试紧张时你会有什么表现? #
1782次浏览 21人参与
# 你有哪些缓解焦虑的方法? #
37196次浏览 835人参与
# 你喜欢工作还是上学 #
77610次浏览 860人参与
# 入职第一天,你准备什么时候下班 #
85510次浏览 467人参与
# 秋招想进国企该如何准备 #
97743次浏览 487人参与
# 简历无回复,你会继续海投还是优化再投? #
103613次浏览 819人参与
# 机械人的工作环境真的很差吗 #
25075次浏览 119人参与
# 独居后,你的生活是更好了还是更差了? #
28145次浏览 263人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务