使用ROW_NUMBER()分组遇到的坑

news2024/11/24 4:33:30

1、再一次清洗数据时,需要过滤重复数据,使用了ROW_NUMBER() 来分组给每组数据排序号

在获取每组的第一行数据

with records as(
	         select cc.F_Id as Id,
             REPLACE(cc.F_CNKITitle,char(10),'1') as F_CNKITitle,
             REPLACE(REPLACE(cc.F_Special,'专题:',''),';','、') as F_Special,
             cc.F_Summary as F_Summary,  
             REPLACE(REPLACE(cc.F_KeyValue,' ',''),';','、') as Keys,  
             z.F_QiKan as F_QiKan,
             z.F_FaBiaoShiJian,
             ROW_NUMBER() OVER (PARTITION BY cc.F_CNKITitle,z.F_FaBiaoShiJian ORDER BY cc.F_CreatorTime DESC) AS rn
            from tzkj_CNKIContent cc
            inner join zhiwang z on cc.F_CnkiId =z.id 
            where len(REPLACE(cc.F_CNKITitle ,char(10),''))>3
            --GROUP by F_CNKITitle,z.F_FaBiaoShiJian
            )
            select Id,F_CNKITitle,F_Special,F_Summary,Keys,F_QiKan,F_FaBiaoShiJian
            from records
            where rn=1
            order by F_CNKITitle ASC  
            OFFSET @pageSize * (@pageIndex - 1) ROWS 
            FETCH NEXT @pageSize ROWS ONLY

在这个查询中:

  • ROW_NUMBER() 函数为每一行分配一个唯一的序号。
  • PARTITION BY Name, IDCard 确保序号是在每一组(由姓名和身份证号确定)内部重新开始的。
  • ORDER BY (SELECT NULL) 在这里是不必要的,因为我们不关心每一组内部的排序顺序,但我们需要在 ORDER BY 子句中放置一些东西来使查询有效,比如上面使用F_CreatorTime排序,而且也是没有提升查询速度,才使用这个排序的。
  • WITH RankedPeople 是一个公用表表达式(CTE),它允许我们为子查询结果集定义一个临时名称,并在主查询中引用它。而且使用with,发现也是比不使用with的要速度快
  • 主查询选择 rn = 1 的行,即每一组的第一行,从而实现了去重。

今天这里主要遇到的坑是:清洗的表里的F_CNKITitle字段含有空格、换行符,所以导致内容看着一样,其实是不一样,可以点击字段内容,右键复制,粘贴到一对引号里就发现,换行了,

所以导致在使用ROW_NUMBER()分组时,把F_CNKITitle内容一样的分成两组了,引发数据库联合索引异常,如下图:

这两列中的F_CNKITitle看着是不是一样,且点击内容进入,也没有显示出空格换行啥,但是右键复制下放到引号中就会发现问题所在

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

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

相关文章

从封号之痛出发:探索自养号测评,助力eBay卖家破局重生

在跨境电商的浪潮中,eBay作为知名的电商平台,吸引了众多卖家前来拓展业务。然而,近年来不少卖家反映,因环境问题导致eBay账号被封号,成为他们业务发展的痛点。为此,本文将探讨如何通过自养号测评&#xff0…

学习方法的重要性

原贴:https://www.cnblogs.com/feily/p/13999204.html 原贴:https://36kr.com/p/1236733055209095 1、 “一万小时定律”的正确和误区 正确: 天才和大师的非凡,不是真的天资超人一等,而是付出了持续不断的努力&…

QLineEdit 最右侧添加按钮

如果采用QLineEdit + QPushButton的方式的话,无法将按钮放到QLineEdit的输入框内部,所以下面的方法可以将按钮放到QLineEdit内部的最右侧,效果: 代码如下: QLineEdit* editor = new QLineEdit(parent); QToolButton* btn = new QToolButton; btn->setText("...&q…

【操作系统】进程与线程概念基础知识

进程与线程概念基础知识 进程进程的概念进程控制块进程状态进程三状态模型挂起进程模模型进程的上下文切换进程控制 线程为什么引入线程线程的概念线程与进程的比较线程的上下文切换线程的实现 进程 进程的概念 1. 进程的定义: 进程是指一个具有一定独立功能的程序…

航空电子FC节点卡, FC交换机,主要采用LC或MPO光纤接口形式

FC节点卡主要采用LC或MPO光纤接口形式,可以作为4/2个独立端口使用,也可以作为2对/1对冗余端口使用,支持1.0625Gbps、2.125Gbps、4.25Gbps、8.5Gbps通信速率。节点卡完全遵循FC-LS,FC-FS,FC-AE-ASM、FC-AE-1553B等FC光纤…

特斯拉擎天柱机器人:工厂自动化的未来

随着技术的进步,工业自动化已经逐步进入了一个新的纪元。特斯拉最近公布的擎天柱机器人Optimus的演示,不仅仅展示了一个高科技机器人的能力,更是向我们揭示了未来工厂的可能性。 特斯拉擎天柱机器人的功能展示 马斯克在最新的演示中向我们展…

《米小圈动画古诗》—“诗情画意”也不是很难嘛!

创新是一个民族的灵魂和希望,是一个国家兴旺发达的不竭动力,而学习古诗词就是丰富孩子想象力、培养学生创新精神最有效的方法。因为,诗的韵律,情绪跌宕,可以让孩子在大脑中形成一幅完整的图画。 诗歌带给人最美妙的体…

2024首届香港多元文化暨人工智能国际旗袍选美比赛在香港启动

4月30日,2024首届香港多元文化暨人工智能国际旗袍选美比赛在香港帝京酒店正式启动,本次是英雄电影娱乐有限公司创新的旗袍文化选美项目。除了旗袍文化选美,还有中国悠久的“香道文化和茶道文化”融合一起,将中国的多元文化与旗袍文…

MT3032 环形喂猪

思路: 1.输出Error的情况:m>n/2 2.首先将饥饿值放到大根堆中,先喂最饿的猪i,则把i的饥饿值加到sum中;但也又可能喂i-1和i1,所以此时需要反悔:把i取出来的同时,将a[i-1]a[i1]-a…

学SQL啦

3 SQL 3.1 SQL查询语言 新手学习网址:https://sqlzoo.net/wiki/SQL_Tutorial SQL查询语句语法结构和运行顺序 语法结构:select--from--where--group by--having--order by--limit运行顺序:from--where--group by--having--order by--limit-…

C语言----杨辉三角

各位看官们好。学习到这里想必大家应该对C语言的了解也是很深刻的了吧。但是我们也不能忘记我们一起学习的知识啊。在我们以前学习C语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。 首先我们先…

如何设置cPanel的自动备份

近期我们购买了Hostease美国VPS云主机产品,由于需要设置服务器的自动备份,我们向Hostease技术团队进行了咨询,他们提到VPS云主机的cPanel面板包含自动备份功能,下面我们就介绍如何进行自动备份的设置。 首先你需要登录到WHM面板&…

2024蓝桥杯CTF writeUP--缺失的数据

压缩包的内容 里面有secret.txt文件,用ARCHPR工具套上字典,爆破压缩包密码。密码为pavilion 解压得到原图,并且有了加密后的图片,根据代码里的key和参数直接运行脚本解密水印图片: import cv2 import numpy as np imp…

一文扫盲(10):考试管理系统的功能模块和界面设计

一、什么是考试管理系统 考试管理系统是一种用于管理和组织考试过程的软件系统。它提供了一系列功能,包括考试计划安排、考试报名、考生管理、试卷管理、考试监控、成绩管理等。考试管理系统的目的是简化和自动化考试流程,提高考试的效率和准确性。 考试…

启动配置 BOOT

在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。 STM32微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。 根据选定的启动模式,主闪存存储器、系统存储器或SRAM可…

微信小程序 手机号授权登录

手机号授权登录 效果展示 这里面用的是 uni-app 官方的登录 他支持多端发布 https://zh.uniapp.dcloud.io/api/plugins/login.html#loginhttps://zh.uniapp.dcloud.io/api/plugins/login.html#login 下面是代码 <template><!-- 授权按钮 --><button v-if&quo…

怎样给excel表格加密?如何有效的防止文件被他人你查看

在处理敏感信息或共享机密数据时&#xff0c;为 Excel 工作簿中的表格添加密码保护是一种重要的安全措施。当我们需要处理大量的工作簿并保护其中的表格时&#xff0c;手动逐个添加密码可能变得繁琐且耗时。因此&#xff0c;我们需要一种批量添加密码保护的方法。本文将详细介绍…

时钟模块RX8025SA 内置32.768 kHz石英晶体振荡器

实时时钟模块RX8025SA&#xff0c;料号Q41802552000100&#xff0c;是一款低功耗&#xff0c;高精度时钟芯片。时钟芯片RX8025SA选型过程中应该注意哪些&#xff1f;RX8025SA又应用在哪些领域呢&#xff1f;爱普生RTC实时时钟RX8025SA&#xff0c;内置32.768 kHz石英晶体振荡器…

【话题】如何看待AI技术,以及AI技术的发展现状和未来趋势

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景一、引言二、AIGC技术的发展现状2.1、技术突破与成果2.2、应用领域的拓展2.3、市场规模的增长 三、AIGC技术的未来趋势3.1、技术融合与创新3.2、应用领域的深化3.3、…

软件测试小妙招:详细解读 postman接口测试导入导出操作

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 postman中的集合脚本&#xff0c;环境变量、全局变量全部都可以导出&#xff0c;然后分享给团队…