文章目录

  • 1. 题目
  • 2. 解题

1. 题目

配送表: Delivery

+-----------------------------+---------+
| Column Name                 | Type    |
+-----------------------------+---------+
| delivery_id                 | int     |
| customer_id                 | int     |
| order_date                  | date    |
| customer_pref_delivery_date | date    |
+-----------------------------+---------+
delivery_id 是表的主键。

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

如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。

「首次订单」是顾客最早创建的订单。我们保证一个顾客只会有一个「首次订单」。

写一条 SQL 查询语句获取即时订单在所有用户的首次订单中的比例。保留两位小数。

查询结果如下所示:

Delivery 表:
+-------------+-------------+------------+-----------------------------+
| delivery_id | customer_id | order_date | customer_pref_delivery_date |
+-------------+-------------+------------+-----------------------------+
| 1           | 1           | 2019-08-01 | 2019-08-02                  |
| 2           | 2           | 2019-08-02 | 2019-08-02                  |
| 3           | 1           | 2019-08-11 | 2019-08-12                  |
| 4           | 3           | 2019-08-24 | 2019-08-24                  |
| 5           | 3           | 2019-08-21 | 2019-08-22                  |
| 6           | 2           | 2019-08-11 | 2019-08-13                  |
| 7           | 4           | 2019-08-09 | 2019-08-09                  |
+-------------+-------------+------------+-----------------------------+Result 表:
+----------------------+
| immediate_percentage |
+----------------------+
| 50.00                |
+----------------------+
1 号顾客的 1 号订单是首次订单,并且是计划订单。
2 号顾客的 2 号订单是首次订单,并且是即时订单。
3 号顾客的 5 号订单是首次订单,并且是计划订单。
4 号顾客的 7 号订单是首次订单,并且是即时订单。
因此,一半顾客的首次订单是即时的。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/immediate-food-delivery-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先找出每个顾客的最早下单时间
select customer_id, min(order_date) firstday
from Delivery
group by customer_id
默认例子的结果
{"headers": ["customer_id", "firstday"], "values":
[[1, "2019-08-01"],
[2, "2019-08-02"],
[3, "2019-08-21"],
[4, "2019-08-09"]]}
  • 再从原表中选出来,最终答案
# Write your MySQL query statement below
select round(sum(d.order_date = d.customer_pref_delivery_date)/count(*)*100 ,2) immediate_percentage
from Delivery d
where (d.customer_id, d.order_date) in
(select customer_id, min(order_date) firstdayfrom Deliverygroup by customer_id
)

452 ms


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 1174. 即时食物配送 II相关推荐

  1. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 II【难度中等】​

    [未来的你,会感谢今天努力的你]每日两题,一难一易,每天进步一点点,可能会直接导致一场面试的成功,或工作的轻松搞定,从而升职加薪迎娶白富美,加油小伙伴!

  2. LeetCode MySQL 1587. 银行账户概要 II

    文章目录 1. 题目 2. 解题 1. 题目 表: Users +--------------+---------+ | Column Name | Type | +--------------+-- ...

  3. LeetCode MySQL 1132. 报告的记录 II

    文章目录 1. 题目 2. 解题 1. 题目 动作表: Actions +---------------+---------+ | Column Name | Type | +------------ ...

  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 I【难度简单】​

    [未来的你,会感谢今天努力的你]每日两题,一难一易,每天进步一点点,可能会直接导致一场面试的成功,或工作的轻松搞定,从而升职加薪迎娶白富美,加油小伙伴!

  5. LeetCode MySQL解题目录

    已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...

  6. LeetCode MySQL 1308. 不同性别每日分数总计(累加/变量/窗口函数)

    文章目录 1. 题目 2. 解题 1. 题目 表: Scores +---------------+---------+ | Column Name | Type | +--------------- ...

  7. 【LeetCode】剑指 Offer 59 - II. 队列的最大值

    [LeetCode]剑指 Offer 59 - II. 队列的最大值 文章目录 [LeetCode]剑指 Offer 59 - II. 队列的最大值 package offer;import java ...

  8. 【LeetCode】剑指 Offer 58 - II. 左旋转字符串

    [LeetCode]剑指 Offer 58 - II. 左旋转字符串 文章目录 [LeetCode]剑指 Offer 58 - II. 左旋转字符串 一.字符串切片 二.列表遍历拼接 三.字符串遍历拼 ...

  9. 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II

    [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...

最新文章

  1. python如何实现多进程_Python实现多进程的四种方式
  2. 建博客的原因。。。。
  3. 数据中心成“香饽饽”:阿里云未来再投2000亿,板块内掀起涨停潮
  4. web前端超出两行用省略号表示
  5. 1270: [BeijingWc2008]雷涛的小猫
  6. 利用TF-IDF提取新闻文章摘要
  7. HDU1071_数学几何
  8. win10java配置环境变量msi_Windows10+eclipse+hadoop2.7.1环境配置+wordcount-折腾笔记
  9. 使用GDAL生产jpg格式的快视图(拇指图)
  10. R语言ETL工程:分组(group_by)
  11. 怎样取消计算机中镜像,win7系统,如何删除之前创建的镜像文件。 (不是在系统保护里头删除还原点,我试过了)...
  12. Redis 官方推出可视化工具,颜值爆表,功能真心强大!这是不给其他工具活路啊!...
  13. 传谷歌金山秘密合作研发Office软件
  14. php集成paypal付款流程,PHP整合PayPal支付_PHP教程
  15. 如何快速设计一款万能遥控器产品原型(SoC免开发)
  16. OJ 里面的 G++ 和C++ 到底有什么区别, 为什么有时候G++能过,C++不能过,而有时候C++能过,G++不能过?
  17. 关于Palantir—第四部分:Palantir应用程序
  18. 神级编辑器 Vim 使用-插件篇
  19. jarvis oj level5
  20. 以太坊钱包开发-下载、编译 go-ethereum,搭建 eth 私有链

热门文章

  1. Django的信号机制详解
  2. innerHTML和value的区别
  3. 【python】内建异常类的层次
  4. excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合
  5. magenta内核与linux,谷歌将推出新操作系统Fuchsia:Magenta语言为内核
  6. php 年月日 中文,转换中文日期的PHP程序
  7. 数据结构探险——栈篇
  8. 树的遍历和图的遍历的异同
  9. python day15
  10. .Net序列化与反序列化的2种方法