/*
思路:
输出:北京司机平均接单次数,平均兼职收入(显示3位小数),只显示接单>=3的司机的数据
需要获取条件:
①清洗得出每个司机的接单数和每个司机的总收入,关联客户表,筛选北京订单。
②计算核心指标,不用处理接单但未履约的订单,因为题目只要求输出接单数,且未履约订单的收入为NULL,在使用聚合函数时会被自动忽略。
*/
WITH
sj AS (
SELECT
d.driver_id,k.city,
COUNT(*) AS dds,
SUM(fare) AS sr
FROM tb_get_car_order AS d
INNER JOIN tb_get_car_record AS k
ON (k.order_id = d.order_id)
WHERE
d.order_time >= '2021-10-01 00:00:00'
AND d.order_time < '2021-10-08 00:00:00'
AND k.city = '北京'
GROUP BY d.driver_id,k.city
)
SELECT
city,
ROUND(AVG(dds),3) AS avg_order_num,
ROUND(AVG(sr),3) AS avg_income
FROM sj
WHERE dds >= 3
GROUP BY city;