使用ROW_NUMBER()分组遇到的坑

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 rnfrom tzkj_CNKIContent ccinner 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_FaBiaoShiJianfrom recordswhere rn=1order 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://xiahunao.cn/news/3019858.html

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

相关文章

web安全day03

MYSQL注入: SQL 注入的原理、危害及防御措施 SQL 注入的原理:原本的 SQL 语句在与用户可控的参数经过了如拼接、替换等字符串操作后,得到一个新的 SQL 语句并被数据库解析执行,从而达到非预期的效果。 SQL 注入的危害&#xff…

大数据时代,如何准确查询并解读大数据信用报告?

在互联网时代,个人信息的安全和隐私保护愈发受到人们的关注。随着大数据技术的不断发展,越来越多的人开始关心自己的大数据报告。那么,如何找一个靠谱的地方查询个人大数据报告呢?本文将为您详细解答。 一、先了解大数据报告的含义 首先&…

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

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

2024年5月12日(星期天)骑行海囗

2024年5月12日 (星期天)骑行海口,早8:30到9:00大观公园门口集合,9:30准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:大观公园门口集合 ,家住东,西,南,北…

嵌入式Linux开发如何查看应用所链接的动态库

在开发中我们常常需要查看一个应用究竟链接了哪些对应的动态库 桌面linux的使用方法不赘述,网上资料有很多,对于嵌入式linux开发中,我们在ubuntu中使用ldd 是不行的 应该使用

MT3031 AK IOI

思路:把每个节点存到堆(大根堆)里。 如果节点放入后总时间没有超过m则放入堆中;如果总时间超过了,就看堆头元素是否比新元素大。如果大,则删除堆头(反悔贪心)。 注意别忘记开long l…

分布式事务Seata使用

我们要学习seata,首先需要具备如下技术储备: 数据库事务的基本知识;maven工具的使用;熟悉SpringCloudAlibaba技术栈;掌握SpringDataJPA简单使用; 一. Seata基本概念 1.seata是什么 Seata是阿里巴巴中间…

解决“您的连接不是私密连接”

目录 那么为什么会出现这样提示呢 https访问有什么不同 将http访问更改为https访问 当您在浏览网页时,遇到“您的连接不是私密连接”的提示,这通常表示浏览器认为您的连接不够安全。这是因为浏览器无法信任网站使用的SSL证书,或者网站没有…

Linux下的SPI通信

SPI通信 一. 1.SPI简介: SPI 是一种高速,全双工,同步串行总线。 SPI 有主从俩种模式通常由一个主设备和一个或者多个从设备组从。SPI不支持多主机。 SPI通信至少需要四根线,分别是 MISO(主设备数据输入,从设备输出),MOSI (主设数据输出从设备输入),SCLK(时钟信号),CS/SS…

【声明ACL权限】

声明ACL权限 当应用在申请权限来访问必要的资源时,发现部分权限的等级比应用APL等级高,开发者可以选择通过ACL方式来解决等级不匹配的问题。 举例说明,如果应用需要使用全局悬浮窗,需要申请 ohos.permission.SYSTEM_FLOAT_WINDO…

这么受欢迎的Transform到底解决了什么问题?

文章目录 这么受欢迎的Transform到底解决了什么问题?背景基于卷积神经网络(CNN)基于注意力机制的神经网络大语言模型ChatGPT总结参考 这么受欢迎的Transform到底解决了什么问题? 背景 在过去的十几年中,深度卷积神经…

MT3032 环形喂猪

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

vue3 element-plus表单form验证规则设置的require:true无效

必填项为空校验&#xff0c;valid第一次为true&#xff0c;再点值为false 引入FormInstance &#xff0c;校验代码改为以下&#xff1a; import { ElMessage, FormInstance } from element-plus const ruleFormRef ref<FormInstance>()const submitForm async (formEl:…

ES6-自学01

调用方法读取文件&#xff1a;如果失败就throw抛出err,成功则抛出data 2.使用promise封装&#xff0c;如果失败就改变状态为 reject(err) 如果成功就 resolve(返回成功的值) &#xff0c;然后then,就可以获取返回的值&#xff0c;值toString&#xff08;&#xff09;方法来把…

【SpringBoot 项目 加密】你会对Spring项目的接口进行加密吗?

这里写目录标题 加密/加盐加密介绍加密算法分类加密思路 测试类写加密/解密工具类修改数据库密码修改登录接口 加密/加盐 加密介绍 在MySQL数据库中, 我们常常需要对密码, ⾝份证号, ⼿机号等敏感信息进⾏加密, 以保证数据的安全性。如果使⽤明⽂存储, 当⿊客⼊侵了数据库时,…

添砖Java之路其一——Java跨平台原理,JRE与JDK(为什么要安装)。

目录 前言&#xff1a; Java跨平台工作原理简单的理解&#xff1a; JRE与JDK&#xff1a; 前言&#xff1a; 最近又开始学Java了&#xff0c;所以又开一个板块来记录我Java的笔记。 Java跨平台工作原理简单的理解&#xff1a; 简单概括&#xff1a;简单来说Java跨平台原理…

I.MX6U NXP参考手册中“IPG“的含义

前言&#xff1a; 本文记录了在学习正点原子 I.MX6UAPLHA/Mini开发板中&#xff0c;在NXP参考手册中遇到的缩写术语 "IPG" 的含义。 引用&#xff1a; Solved: Whats IP Bus Means - NXP Community Solved: IPG/PER clocks - NXP Community 正文&#xff1a; 1. …

BS-Diff | 扩散模型在骨抑制任务上的首次登场!

摘要 胸部 X 射线&#xff08;CXR&#xff09;是肺部筛查中常用的低剂量方式。然而&#xff0c;由于大约 75% 的肺部区域与骨骼重叠&#xff0c;这反过来又阻碍了疾病的检测和诊断&#xff0c;因此 CXR 的功效受到了一定程度的影响。作为一种补救措施&#xff0c;骨抑制技术已…

Python程序中温度更新出现振荡问题的分析和解决方案

在处理温度更新出现振荡问题时&#xff0c;可以考虑以下分析和解决方案&#xff1a;检查温度更新算法是否正确&#xff0c;可能存在错误导致振荡。检查温度更新的步长&#xff08;时间步长&#xff09;是否合适&#xff0c;步长过大可能导致振荡。检查系统动力学模型是否准确&a…

北交所佣金费率标准是多少?北交所相关信息科普

北交所的佣金费率并非固定不变&#xff0c;而是可以根据投资者的需求和证券公司的政策进行调整。目前北交所的佣金费率最低是万分之二。 一般来说&#xff0c;北交所的佣金费率默认在万分之三左右&#xff0c;但这不是固定的费率。根据证券公司的不同&#xff0c;佣金费率可以…