首页 > 数据库 >【力扣sql】高频 SQL 50 题(基础版)

【力扣sql】高频 SQL 50 题(基础版)

时间:2024-03-21 12:30:11浏览次数:38  
标签:customer +-----------------------------+---------+ over 50 力扣 sql date 排序 order

1174

获取即时订单在所有用户的首次订单中的比例。

保留两位小数。

配送表: Delivery

+-----------------------------+---------+
| Column Name                 | Type    |
+-----------------------------+---------+
| delivery_id                 | int     |
| customer_id                 | int     |
| order_date                  | date    |
| customer_pref_delivery_date | date    |
+-----------------------------+---------+
select  round(100*sum(order_date = customer_pref_delivery_date)/count(*),2) immediate_percentage
from (select *,
    row_number()over(partition by customer_id order by order_date) posn 
    from Delivery) d
where posn = 1

注意:顾客可能有几个订单在同一最早日期创建。因此,选择排序窗口函数时,row-number()over()最佳。

row_number()over()是连续型排序:9,9,8,7  排序为:1,2,3,4

而 rank()over()是跳跃型排序:9,9,8,7  排序为:1,1,3,4

dense_rank()over()是并列连续型排序:9,9,8,7  排序为:1,1,2,3

标签:customer,+-----------------------------+---------+,over,50,力扣,sql,date,排序,order
From: https://blog.csdn.net/yangztcly/article/details/136878405

相关文章

  • SQL SERVER 游标格式
    --定义参数declare@Row_LevelIndexintdeclare@Row_UserIDintdeclare@Row_MemberRightintdeclare@Row_CaptainID intdeclare@Row_Scoredecimal(18,2)declare@Row_GroupIDintdeclare@Row_ScoreCountdecimal(18,2)declare@Row_DrawCountintdecla......
  • Node+Vue毕设社区居家养老管理系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在人口老龄化日益加剧的今天,社区居家养老已成为解决老年人养老问题的重要方式。随着社会经济的发展和科技的进步,老年人对于养老服务的需求不再局限于基本的......
  • springboot下postgresql指定schema问题
    首先明确用的postgresql版本是PostgreSQL9.5.25,compiledbyVisualC++build1800,64-bitspringboot是2.3.5.RELEASE。现有的文档提供的连接数据库配置方式是url:jdbc:postgresql://IP:端口/数据库名?currentSchema=模式名&stringtype=unspecified通常postgresq......
  • 【Mysql数据库基础01】去重、连接字符、模糊查询、通配符、检索表的结构信息
    去重、连接字符、模糊查询、通配符、检索表的结构信息1去重distinct2连接字符函数concat(str1,str2,...)3模糊查询3.1like包含3.2通配符3.3betweenand3.4in3.5isnull4安全等于<=>5检索表的结构信息desc6课后练习1去重distinct使用DISTINCT关......
  • 这50个学习Python的爆赞的资源,你用过几个?
    欢迎关注我的专栏:今天给大家分享一下,不同阶段的Python学习者从不同角度量身定制了50个学习资源,建议收藏!01初学者1.Welcometohttp://Python.orghttps://www.python.org/官方Python站点提供了一个开始使用Python生态系统和学习Python的好方法,包括官方文档。2.Lear......
  • linq链接数据库SQL封装类
    linq链接数据库SQL封装类首先,需要定义一个LINQtoSQL的上下文类,这个类是从DataContext继承而来,并且包含了映射到数据库表的实体类。[Database(Name="MyDatabase")]publicclassMyDataContext:DataContext{publicTable<User>Users;publicMyDataContext(stri......
  • SpringBoot:如何读取 .sql文件的内容并执行
    摘要:在复杂查询、统计等应用场景,直接写sql并执行是一种高效的方法。此文记录工作中解决的将查询统计sql直接写在文件中,代码中读取相应的文件即可获得要执行的sql。要点:.sql文件要放到Resource目录下,读取时路径要正确一种正确的方式和关键代码这里提供的是一种尝试过的......
  • MySQL InnoDB Instant schema 变更注意点
    在MySQL8.0.12中为DDL引入了新的算法,在修改表的定义的时候不会阻塞。第一个instant操作是在表的最后增加一个列,这是腾讯游戏团队贡献的。在8.0.29中,官方增加在任意位置增加或删除列的instant操作。本文要讲的是盲目使用该特性会带来的危害。 默认算法从MySQL8.0......
  • 通过Docker安装MySQL数据库
    1.安装Docker首先,确保你的系统上已经安装了Docker。如果还没有安装,可以访问Docker官网查看安装指南。对于大多数Linux发行版,可以使用以下命令安装Docker:sudoapt-getupdatesudoapt-getinstalldocker.io安装完成后,启动Docker服务并设置开机自启:sudosystemctlstart......
  • QT6实现创建与操作sqlite数据库三种方式方式对比(二)
    一.概述Qt访问Sqlite数据库的三种方式(即使用三种类库去访问),QSqlQuery、QSqlQueryModel、QSqlTableModel,对于这三种类库,可看为一个比一个上层,也就是封装的更厉害,甚至第三种QSqlTableModel,根本就不需要开发者懂SQL语言,也能操作Sqlite数据库。二.Qt读写Sqlite数据库的三种方......