前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1173.即时食物配送I
表:Delivery
列名 | 类型 |
---|---|
delivery_id | int |
customer_id | int |
order_date | date |
customer_pref_delivery_date | date |
delivery_id 是表的主键(具有唯一值的列)。该表保存着顾客的食物配送信息,顾客在某个日期下了订单,并指定了一个期望的配送日期(和下单日期相同或者在那之后)。
如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。
编写解决方案统计即时订单所占的百分比, 保留两位小数。
我那不值一提的想法:
- 首先梳理表内容,题干一共给了一张配送表,记录了配送id,客户id,订单日期,指定配送日期。
- 其次分析需求,需要统计即时订单所占的百分比。
- 这道题的思路也很简单,找到即时订单,也就是订单日期和指定日期相等,然后再用查到的即时订单除以所有订单数量得到我们的结果。
select round(count(*) * 100/(select count(delivery_id) from Delivery),2) as immediate_percentage
from Delivery
where order_date = customer_pref_delivery_date
结果:
总结:
能运行就行。