首页 > 其他分享 >有两条类似的数据,但是B.id不同,B.name不同,取B.id最大的那条数据

有两条类似的数据,但是B.id不同,B.name不同,取B.id最大的那条数据

时间:2024-03-28 10:36:07浏览次数:27  
标签:name 行号 PARTITION ORDER jcl sc 数据 id

SELECT *
FROM (
    SELECT sc.*, jcl.*, ROW_NUMBER() OVER(PARTITION BY sc.id ORDER BY jcl.id DESC) as rn
    FROM A sc
    LEFT JOIN B jcl ON jcl.id = sc.id
    WHERE sc.id = 116
) t
WHERE t.rn = 1


ROW_NUMBER() OVER(PARTITION BY sc.id ORDER BY jcl.id DESC) 
是SQL中窗口函数的一种用法,用于为查询结果集中的每一行赋予一个唯一的行号,行号的顺序是基于指定的分区(PARTITION BY)和排序(ORDER BY)规则。

详细解释如下:

  • ROW_NUMBER(): 这是一个窗口函数,它会给每一行生成一个连续的行号,从1开始递增。

  • OVER(): 这个关键字指定了函数应用的范围或窗口。

  • PARTITION BY sc.id: 表示将整个查询结果集按照sc.id字段的值进行分区,也就是对于每个不同的sc.id值,窗口函数都会重新开始计算行号。

  • ORDER BY jcl.id DESC: 在每个sc.id分区内部,行号是按照jcl.id字段的值进行降序排列的,也就是说,jcl.id值最大的行将获得该分区内的行号1

综上所述,这条表达式的作用是对A表中每个唯一sc.id值对应的B 表记录,按照jcl.id的降序给每条记录分配一个行号,其中jcl.id最大的记录在每个sc.id分区中将获得行号1。在后续的查询中通过WHERE t.rn = 1就可以选择每个sc.idjcl.id最大的那条记录。

标签:name,行号,PARTITION,ORDER,jcl,sc,数据,id
From: https://www.cnblogs.com/w852894903/p/18100983

相关文章

  • openGaus DB4AI-数据库驱动AI
    DB4AI:数据库驱动AI可获得性本特性自openGauss2.1.0版本开始引入。特性简介DB4AI是指利用数据库的能力驱动AI任务,实现数据存储、技术栈的同构。通过在数据库内集成AI算法,令openGauss具备数据库原生AI计算引擎、模型管理、AI算子、AI原生执行计划的能力,为用户提供普惠AI技术......
  • 4.Python数据分析—数据分析入门知识图谱&索引(知识体系下篇)
    4.Python数据分析—数据分析入门知识图谱&索引-知识体系下篇一·个人简介二·机器学习基础2.1监督学习与无监督学习2.1.1监督学习:2.1.2无监督学习:2.2特征工程2.3常用机器学习算法概述2.3.1监督学习算法:2.3.2无监督学习算法:2.3.3强化学习:2.4模型评估与选择三......
  • 数据库表名和字段名,为什么忽略大小写?为什么采用下换线分割单词?
    数据库表名和字段名,为什么忽略大小写在数据库设计和使用中,表名和字段名的大小写敏感性是由数据库管理系统(DBMS)的配置和操作系统决定的。有些数据库系统默认是区分大小写的,而有些则不区分。在实际操作中,忽略大小写的原因主要有以下几点:兼容性和易用性:为了确保不同操作系......
  • 2-17. 物品数据库填写规则
    首先把原来界面上没有绑定的字段都给完成privatevoidGetItemDetails(){itemDetailSection.MarkDirtyRepaint();itemDetailSection.Q<IntegerField>("itemID").value=activeItem.itemID;itemDetailSection.Q<IntegerField>(&quo......
  • Linux:部署达梦数据库DM8(1)
    0.安装DM8数据库安装包产品下载-达梦数据(dameng.com)https://www.dameng.com/list_103.html进入官方网站下载centos7的安装包,本章使用centos7进行部署,提前关闭好防火墙和selinux  建议你的系统运行内存为:2G或以上1.部署基础环境先安装一下桌面环境yum-ygroupinstal......
  • IRIS / Chronicles 中的 Data Type(数据类型)字段型属性
    IRIS的数据类型比较少,也就4个数据类型:字符串,数字,时间,分类。在这里分类有点像我们的下拉选择框,其实对应Java或者其语言中的数据来说可以说是枚举类型。只是IRIS的枚举类型是定义在数据库中的,并且是事先定义好的。String这个好说,就是字符串。因为M语言的限制,所以Stri......
  • 目标检测——服装数据集
    一、重要性及意义首先,服装检测是确保产品质量和安全性的关键环节。通过对服装的材质、工艺、安全性等方面的检测,可以及时发现并纠正可能存在的缺陷和问题,从而确保产品符合消费者的期望和要求。这有助于维护品牌形象,提高消费者对品牌的信任度和忠诚度。其次,服装检测有助于......
  • 定时备份mysql数据库数据--mysqldump版
    前言:mysqldump是MySQL自带的逻辑备份工具,可以将整个数据库或者指定的表格导出为一个SQL脚本文件,可以用于数据库备份。1、编写shell脚本#备份文件保存路径backup_dir=/data/mysqlbackup#当前时间current_time=`date+%Y-%m-%d-%H-%M-%S`#当前年份year=`date+%Y`#......
  • 解决element-ui el-select数据过大方案
    一、背景项目中需要用到el-select选择医院,全国医院数据量非常大,通过API读取数据页面直接卡死。 二、解决方案1、组件:el-select+vue虚拟滚动(vue-virtual-scroll-list)2、安装:npminstallvue-virtual-scroll-list--save3、参考:NPM地址:https://www.npmjs.com/pack......
  • 14个必须掌wo的数据库面试问题
    2、B+树索引和哈希索引的区别B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接,是有序的,如下图:哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希......