日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

LeetCode MySQL 1174. 即时食物配送 II

發(fā)布時間:2024/7/5 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode MySQL 1174. 即时食物配送 II 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

配送表: Delivery

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

該表保存著顧客的食物配送信息,顧客在某個日期下了訂單,并指定了一個期望的配送日期(和下單日期相同或者在那之后)。

如果顧客期望的配送日期和下單日期相同,則該訂單稱為 「即時訂單」,否則稱為「計劃訂單」。

「首次訂單」是顧客最早創(chuàng)建的訂單。我們保證一個顧客只會有一個「首次訂單」。

寫一條 SQL 查詢語句獲取即時訂單在所有用戶的首次訂單中的比例。保留兩位小數(shù)。

查詢結果如下所示:

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
著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。

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的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。