当前位置: 首页 > news >正文

SQL-每日一题【1174. 即时食物配送 II】

题目

配送表: Delivery

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

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

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

查询结果如下所示:

  

解题思路

1.题目要求我们获取即时订单在所有用户的首次订单中的比例并且保留两位小数。那我们首先就要查询出所有顾客的首次订单,我们使用一个子查询,先将表中的记录按customer_id

分组,然后用min()函数找出每一组中 order_date 最小的订单,也就是我们的首次订单

2.我们再从已经查询到的首次订单中找到即时订单,也就是order_date = customer_pref_delivery_date 的订单,然后让它除以全部的首次订单,并且乘以100(因为求的是百分比),最后用round()函数保留两位小数即可。

代码实现

select round(sum(order_date=customer_pref_delivery_date)/count(*)*100,2) as immediate_percentage
from Delivery
where (customer_id, order_date ) in (select customer_id,min(order_date)from Deliverygroup by customer_id
)

测试结果

 

http://www.lryc.cn/news/107439.html

相关文章:

  • MySQL学习记录:第一章 DQL语言
  • redis+token+分布式锁确保接口的幂等性
  • Vue模版语法
  • 新一代开源流数据湖平台Apache Paimon入门实操-上
  • ELK 企业级日志分析系统(一)
  • 2023-08-01力扣今日二题-Hard-DPLIS优先队列-好题
  • 并发 如何创建线程 多线程
  • 亚马逊鲲鹏系统是怎么引流的?
  • 第五章 Git
  • 无涯教程-Lua - 变量声明
  • vue3学习-组件基础、深入组件
  • 原型链污染分析
  • RF PCB的9条改进型建议
  • 网络安全(黑客)自学就业
  • uni-app选择器( uni-data-picker)选择任意级别
  • 网络入侵探测器Pi.Alert
  • Flask项目打包为exe(附带项目资源,静态文件)
  • 无代码开发(BIP旗舰版-YonBuilder)
  • 誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较
  • flutter:占位视图(骨架屏、shimmer)
  • 【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4
  • python-网络爬虫.BS4
  • C# 开发规范
  • 【uniapp 样式】使用setStorageSync存储历史搜索记录
  • git remote add origin详解
  • 附录1-将uni-app运行到微信开发者工具
  • 【LeetCode】根据二叉树创建字符串
  • 【图论】强连通分量
  • 网络:VRP介绍
  • iOS - 解压ipa包中的Assert.car文件