MySQL高阶2084-为订单类型为0的客户删除类型为1的订单

news2024/11/26 19:20:50

目录

题目

准备数据

分析数据

总结


题目

编写SQL查询以根据以下条件报告所有订单:

  • 如果客户至少有一个类型为0的订单,则不要报告该客户的任何类型为1的订单。
  • 否则,报告客户的所有订单。

按任意顺序返回结果表。

准备数据

Create table If Not Exists Orders (order_id int, customer_id int, order_type int)
    Truncate table Orders
    insert into Orders (order_id, customer_id, order_type) values ('1', '1', '0')
    insert into Orders (order_id, customer_id, order_type) values ('2', '1', '0')
    insert into Orders (order_id, customer_id, order_type) values ('11', '2', '0')
    insert into Orders (order_id, customer_id, order_type) values ('12', '2', '1')
    insert into Orders (order_id, customer_id, order_type) values ('21', '3', '1')
    insert into Orders (order_id, customer_id, order_type) values ('22', '3', '0')
    insert into Orders (order_id, customer_id, order_type) values ('31', '4', '1')
    insert into Orders (order_id, customer_id, order_type) values ('32', '4', '1')

分析数据

第一步:使用开窗函数rank(),对customer_id组内不同的order_type生成一列排序

select
    order_id,
    customer_id,
    order_type,
    rank() over(partition by customer_id order by order_type) rn
from orders;

第二步:因为组内全部相同,排序只有1,当出现不同时,就会产生排序,把组内有0有1的1排除掉

with t1 as (
    select
        order_id,
        customer_id,
        order_type,
        rank() over(partition by customer_id order by order_type) rn
    from orders
)select order_id,
        customer_id,
        order_type
from t1
where rn = 1;

总结

因为本题是只将组内同时出现有0和有1的时候,删除1,所以可以进行排序,值筛选出rn=1的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java】spring boot打war包

【java】spring boot打war包 第1步:修改pom.xml文件的打包方式 在项目根目录下找到pom.xml文件,首先看看你的文件内容里有没有packaging节点;如果有packaging节点,直接修改节点为war<packaging>war</packaging><

Android Camera系列(四):TextureView+OpenGL ES+Camera

别人贪婪时我恐惧&#xff0c;别人恐惧时我贪婪 Android Camera系列&#xff08;一&#xff09;&#xff1a;SurfaceViewCamera Android Camera系列&#xff08;二&#xff09;&#xff1a;TextureViewCamera Android Camera系列&#xff08;三&#xff09;&#xff1a;GLSur…

单片机(学习)2024.10.9

目录 汇编整体分类 1.指令 2.伪操作 3.伪指令 汇编代码 汇编初始化 数据搬运指令 算术运算指令 加法 减法 乘法 比较指令 跳转指令 逻辑运算指令 与或&#xff0c;异或 左移右移 内存操作 LOAD/STORE 指令 写 读 CPU的栈机制 栈的概念 栈的种类 1.空栈(…

设备多久(60/50/40min)未上报,类似场景发送通知实现方案

场景描述 设备比较多&#xff0c;几十万甚至上百万&#xff0c;设备在时不时会上报消息。 用户可以设置设备60分钟、50分钟、40分钟、30分钟未上报数据&#xff0c;发送通知给用户&#xff0c;消息要及时可靠。 基本思路 思路&#xff1a; 由于设备在一直上报&#xff0c;如果…

叶国富的永辉填坑之旅

叶国富体验了一把过山车&#xff01;永辉的难题逐渐转移到名创优品&#xff0c;后者是否能应对这些问题&#xff0c;以及其股价的徘徊&#xff0c;都预示着挑战才刚刚开始。 转载&#xff1a;原创新熵 作者丨樱木 编辑丨蕨影 低迷了3年的二级市场&#xff0c;迎来了超级反转&…

【金九银十】笔试通关 + 小学生都能学会的堆排序

算法原理 堆排序是一种基于比较的排序算法&#xff0c;它利用了数据结构中的堆&#xff08;Heap&#xff09;。堆是一种特殊的完全二叉树&#xff0c;分为最大堆&#xff08;Max-Heap&#xff09;和最小堆&#xff08;Min-Heap&#xff09;。在最大堆中&#xff0c;每个父节点…

单场数字人直播爆量300万,GMV狂增80%,电商人如何玩转数字人直播?

单场直播带货300万&#xff0c;在头部主播那里也许不算什么。但如果告诉你&#xff0c;这是数字人直播做出的成绩&#xff0c;你会惊讶吗&#xff1f; 苏宁借力电商数字人开播&#xff0c;直播时长比以往能增加3倍&#xff0c;GMV增量80%&#xff0c;下单转化57%&#xff0c;不…

通过祖先序列重建辅助工程化UDP-糖基转移酶-文献精读64

Engineering the Substrate Specificity of UDP-Glycosyltransferases for Synthesizing Triterpenoid Glycosides with a Linear Trisaccharide as Aided by Ancestral Sequence Reconstruction 通过祖先序列重建辅助工程化UDP-糖基转移酶的底物特异性&#xff0c;用于合成具…

RWKV-CHN模型部署教程

一、模型介绍 RWKV 语言模型&#xff08;用纯 100%RNN 达到 GPT 能力&#xff0c;甚至更强&#xff09;&#xff0c;该项目旨在通过为您自动化所有事情来消除使用大型语言模型的障碍。您需要的是一个只有几兆字节的轻量级可执行程序。此外&#xff0c;该项目还提供了一个接口兼…

Vue打印网页pdf,并且有按钮调整缩小放大

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

[AutoSar]BSW_Diagnostic_005 RoutineControl service (0x31)介绍

目录 关键词平台说明背景一、请求格式二、sub-function definition三、响应格式四、NRC五、case 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C&#xff0c;C编译器HighTec (GCC)autosar版…

录屏工具分享

遇到问题 现在很多录屏工具都是要会员 要么就不清&#xff0c;压缩画质 解决方案 &#xff08;1&#xff09;QQ录屏 QQ录屏缺点就是界面上会有个录屏计时阻挡。没有影响的话可以使用。录几分钟出来也是几百M的容量 &#xff08;2&#xff09;格式工厂 录的视频很清晰&…

打造梦幻AI开发环境:一步步解锁高效配置的魅力

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

【如何保存Pixso中原型图的图标】

【如何保存Pixso中原型图的图标】 在软件UI设计完成后&#xff0c;设计师需要将设计中的图标导出为开发团队所需的图片文件&#xff0c;以便进行后续开发工作。pixso中原型图的图标到处如下图&#xff0c;按照序号操作流程即可到处图片。

wireshark获取QQ图片

今天随手写下之前做的一个比较有意思的实验&#xff1a;Wireshark抓取qq图片 1.前提 手机和电脑处于同一网络之中&#xff0c;这里我使用了校园网。 接着使用手机向电脑发出图片 2.wireshark流量抓包 先查看好手机的ip地址&#xff0c;随后使用命令&#xff1a;ip.src10.33.X…

MybatisPlus的日常使用

一、基础接口 public interface BaseMapper<T> {/*** 插入一条记录* param entity 实体对象*/int insert(T entity);/*** 根据 ID 删除* param id 主键ID*/int deleteById(Serializable id);/*** 根据 columnMap 条件&#xff0c;删除记录* param columnMap 表字段 map …

Anthropic Message Batches API 满足批量处理大量请求

现在开发的系统有大量知识汇总统计、跑批处理需求的同学可以尝试一下&#xff0c;看看能不能解决自己目前的问题~~ 可能是一个解决方案 Anthropic 推出的 Message Batches API &#xff0c;专门用于帮助开发者批量处理大量请求。它的主要目的是通过一次性处理大量非实时任务&a…

Linux工具的使用——【gcc/g++的使用】【make/Makefile的使用】【如何让普通用户使用sudo】

目录 Linux工具的使用-021.如何让普通用户使用sudo1.1为什么无法使用sudo1.2解决步骤1.3验证 2.编译器gcc/g的使用2.1预处理2.2编译2.3汇编2.4链接2.5函数库2.5.1静态库与动态库2.5.1.1动态链接2.5.1.2静态链接 2.6gcc的默认链接方式2.7gcc的静态链接2.8g的使用2.8.1g的静态链接…

Apache Flink Dashboard

1、Overview Apache Flink Web Dashboardhttp://110.40.130.231:8081/#/overview 这张图片显示的是Apache Flink的Web UI界面&#xff0c;其中包含了以下几个部分&#xff1a; Available Task Slots: 显示当前可用的任务槽位数量。任务槽位是指Flink集群中可用于运行任务的资…

【华为HCIP实战课程十】OSPF网络DR和BDR实战讲解,网络工程师

一、DR与BDR的基础介绍 点到点同步LSA成本小 多点接入网络同步LSA成本大,需要DR/BDR 由于MA网络中,任意两台路由器都需要传递路由信息,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源,DR和BDR应运而生!…