【力扣白嫖日记】1174.即时食物配送II

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

1174.即时食物配送II
表:Person

列名 类型
delivery_id int
customer_id int
order_date date
customer_pref_delivery_date date

delivery_id 是该表中具有唯一值的列。该表保存着顾客的食物配送信息,顾客在某个日期下了订单,并指定了一个期望的配送日期(和下单日期相同或者在那之后)。

如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。「首次订单」是顾客最早创建的订单。我们保证一个顾客只会有一个「首次订单」。

编写解决方案以获取即时订单在所有用户的首次订单中的比例。保留两位小数。


我那不值一提的想法:

  • 首先梳理表内容,题干一共给了一张配送表,记录了配送id,顾客id,订单日期指定配送日期。
  • 其次分析需求,需要找到即时订单占全部用户首次订单的比列即时订单,就是订单日期和配送日期相同,否则则称为计划订单
  • 我们需要求的值有首次订单日期
with min_temp as 
    (
select customer_id,min(order_date) as min_date
from Delivery
group by customer_id
    )
  • 首次订单总客户
select count(*) 
from min_temp
  • 即时订单客户
select count(*) 
from Delivery d 
right join min_temp m 
on d.order_date = m.min_date
where d.order_date = d.customer_pref_delivery_date and d.customer_id = m.customer_id
  • 即时订单客户数量/首次订单总客户(完整代码)
with min_temp as 
    (
select customer_id,min(order_date) as min_date
from Delivery
group by customer_id
    )

select round (count(*) * 100 / (select count(*) from min_temp),2) as immediate_percentage
from Delivery d 
right join min_temp m 
on d.order_date = m.min_date
where d.order_date = d.customer_pref_delivery_date and d.customer_id = m.customer_id

结果:

在这里插入图片描述


总结:

能运行就行。


相关推荐

  1. 【LeetCode】1174. 即时食物配送 II

    2024-03-10 13:52:03       53 阅读
  2. 2024-01-25 高频SQL50题目1174. 即时食物配送

    2024-03-10 13:52:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 13:52:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 13:52:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 13:52:03       82 阅读
  4. Python语言-面向对象

    2024-03-10 13:52:03       91 阅读

热门阅读

  1. uniapp路由跳转的方式

    2024-03-10 13:52:03       42 阅读
  2. 【Docker安装教程】CentOS 7 上的 Docker 安装与配置

    2024-03-10 13:52:03       41 阅读
  3. Vue3 子/父组件相互调用

    2024-03-10 13:52:03       37 阅读
  4. 基于单片机的便携式快速干衣设备设计

    2024-03-10 13:52:03       36 阅读
  5. HTTP和HTTPS有什么区别

    2024-03-10 13:52:03       36 阅读
  6. 【并查集】 547. 省份数量

    2024-03-10 13:52:03       42 阅读
  7. 文件的上传和下载

    2024-03-10 13:52:03       41 阅读
  8. Docker环境搭建和监控备份

    2024-03-10 13:52:03       35 阅读
  9. Vue路由切换 & Axios接口取消重复请求

    2024-03-10 13:52:03       49 阅读
  10. Redis常见面试题

    2024-03-10 13:52:03       39 阅读