当前位置: 首页 > news >正文

Pgsql怎样找到表中某个字段值重复的记录并删除冗余记录,只保留一条

背景

今天发现某个黄页爬取的数据有部分重复了,原本我用的公司详情页的url进行md5来作为主键做upsert入,但后面在核验数据时发现有些详情url虽是同一间公司的,但路由上有细微差别导致写入了重复的公司数据,所以要想办法清理掉重复的公司;
除了有表id外,我的表里还有一个local_id字段,用于保存页面上的内部id,下面就从这个字段入手进行;

实现方案

第一步首先是看看有多少重复的记录,这个很简单,通过group by local_id就能找到了,如下:

SELECT"local_id" 
FROM"result".table_name
WHERE"sources" = 'xxxx' 
GROUP BY"local_id" 
HAVINGCOUNT ( "local_id" ) > 1 )

结果数量是91条,这就意味着有91个公司的信息有重复的;

然后我想看看总共有多少条对应的重复公司记录

SELECT*,ROW_NUMBER ( ) OVER ( PARTITION BY local_id ORDER BY "company_id" ) AS rn 
FROM(SELECT* FROM"result".table_name WHERE"sources" = 'xxxx' AND "local_id" IN ( SELECT "local_id" FROM "result".table_name WHERE "sources" = 'xxxx' GROUP BY "local_id" HAVING COUNT ( "local_id" ) > 1 ) ORDER BY"local_id" ) T) 

查询结果是是182条,也就意味着重复的公司记录里,每家公司信息都是重复了1条;

接着下来的问题是怎样实现把多余的删除,只保留一条的目的,这里用到的pgsql的分区功能,他会根据指定字段值给相同的值增加一个编号,以下是我这个场景的示例:

SELECT* 
FROM(SELECT*,ROW_NUMBER () OVER ( PARTITION BY local_id ORDER BY "company_id" ) AS rn FROM(SELECT* FROM"result".table_nameWHERE"sources" = 'xxxx' AND "local_id" IN ( SELECT "local_id" FROM "result".table_name WHERE "sources" = 'xxxx' GROUP BY "local_id" HAVING COUNT ( "local_id" ) > 1 ) ORDER BY"local_id" ) T ) t1 
WHERErn = 2;

通过这条sql,可以把每个local_id重复的记录找出来,删除后就能达到只保留一条记录的目的了,如果重复的记录不只一条,只要把最后的条件改成 >=2 就可以了。

如果本文解决了你的问题,请点赞精神支持一下,这能鼓励我继续做更多的分享,谢谢

相关文章:

Pgsql怎样找到表中某个字段值重复的记录并删除冗余记录,只保留一条

背景 今天发现某个黄页爬取的数据有部分重复了,原本我用的公司详情页的url进行md5来作为主键做upsert入,但后面在核验数据时发现有些详情url虽是同一间公司的,但路由上有细微差别导致写入了重复的公司数据,所以要想办法清理掉重复…...

如何在HarmonyOS(鸿蒙操作系统)上进行应用开发

文章中提到的关键点包括: 学习ArkTS:作者建议初学者首先学习使用ArkTS编写Hello World程序,并可以通过TypeScript教程来快速掌握基础语法。对于有Flutter或React Native开发经验的开发者来说,页面布局会比较容易上手。 页面布局&…...

C++ typeid运算符介绍

在 C++ 中,typeid() 是一个运算符,用于获取表达式的类型信息。typeid() 运算符在 C++ 中是一个强大的工具,可以用于获取对象的类型信息、类型比较、多态类型判断、异常处理以及类型转换安全检查等场景中。 1. 类型比较: 可以使用 typeid() 来比较两个类型是否相同。 if …...

Android适配平板屏幕尺寸

一、划分手机和平板 人为判断方法: 大于6英寸的就是平板。小于6英寸的都是手机 平板尺寸: 6英寸、7英寸、10英寸、14英寸… Android系统支持多配置资源文件,我们可以追加新的资源目录到你的Android项目中。命名规范: 资源名字-限制符 l…...

汽车充电桩主板在出厂前需要做哪些检测?

充电桩主板作为核心组件承载着充电桩的关键功能,其性能和稳定性直接影响着用户充电体验、桩企产品合规和市场竞争力,以及主板厂商的品牌知名度。因此,对充电桩主板进行全面的测试尤为重要。 下面将详细介绍充电桩主板检测的内容,包…...

关于Renesas R7 的选项字节开关看门狗

Renesas看门狗的模式是在选项字节中进行配置的,OPBT0的寄存器说明如下, 关于看门狗模式 : 和看门狗喂狗方式: 我们选择关闭看门狗(也就是配置31位为软件触发看门狗开始,然后不启动就相当于关闭&#xff09…...

redis bigKey问题

bigKey的产生 1、使用String存储了大文件的二进制。 2、使用集合没有考虑到数据的规模,或者规模的增长。 3、哈希中冗余了大量键值对。 bigKey问题 1、操作大key时会阻塞线程:redis是单线程。 2、网络阻塞:在网络中占用大量网络流量。 …...

二手车商的套路

https://www.dongchedi.com/article/7126394624675578405 https://www.dongchedi.com/article/7126394624675578405 现在,有越来越多的人去了解二手车,二手车相对于新车来说,更加的亲民划算。很多新车需要四五十万,而二手车有可…...

c++ 根据ip主机号和子网掩码随机生成ip

在C中&#xff0c;可以使用以下方法根据给定的IP地址和子网掩码来随机生成IP地址。这里使用了库来生成随机数&#xff0c;以及<arpa/inet.h>库来处理IP地址。 #include <iostream> #include <random> #include <arpa/inet.h>std::string random_ip(co…...

事务的隔离级别

事务由哪些特性 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会结束在中间某个环节&#xff0c;而且事务在执行过程中发生错误&#xff0c;会被回滚到事务开始前的状态&#xf…...

性能优化角度

1.启动角度 2.数据缓存角度比如历史信息联想 3.内存释放角度 4.配合并要求后端进行接口API整合 5.耗时较多需求&#xff0c;根据业务情况进行线程异步处理 6.通过开源的loop监控sdk日志埋点&#xff0c;可监控线程对应环路的休眠/唤醒时间间隔&#xff0c;优化卡顿 7.尽量避免离…...

Vue3 使用ElementUI 显示异常

element提供的样例不能正常显示,需要进行配置 1.npm install element-plus --save 2.main.js // main.ts import { createApp } from vue import ElementPlus from element-plus //全局引入 import element-plus/dist/index.css import App from ./App.vue const app = crea…...

从0开始复习python~

//&#xff0c;int() , abs(), divmod() ,float() ,complex() ,pow(), ** , bool() ,or , and , len() , range() , str() , 其中 for i in xxx: else: xxxxx; 有点意思... # 地板除&#xff0c;向下取整 print(-3//2) # 只保留整数部分 print(int(3.72)) # 绝对值 print…...

从零开始搭建后端信息管理系统(新手小白比如)

如果你是新手小白&#xff0c;首先我们要进行一些准备工作&#xff0c;安装一些基础软件&#xff0c; 备注一下&#xff1a;这里安装的vue环境的后台管理系统&#xff0c;不同的后台管理系统&#xff0c;需要安装不同的插件 准备工作&#xff1a; 安装 Visual Studio Code …...

CentOS 7详细介绍。

CentOS 7是CentOS项目发布的开源类服务器操作系统&#xff0c;自2014年7月7日正式发布以来&#xff0c;它已成为企业级Linux发行版本的佼佼者。CentOS 7不仅继承了其前身的优势&#xff0c;还在性能、安全性和易用性方面进行了显著的提升。以下是对CentOS 7的详细介绍。 一、C…...

JavaScript:nodeType节点/文档碎片对象模型-DcoumentFragment

1伪数组转真数组的方式: 伪数组转真数组的多种方式&#xff1a; 1 Array.from 2 Array.prototype.slice.call(list) 3 [...list] const list1 document.getElementsByTagName(p)//检查list1 是不是 Array数组 的实例 --> false --伪数组console.log(list1 instanceof …...

JDK安全剖析之安全处理入门

0.前言 Java 安全包括大量 API、工具以及常用安全算法、机制和协议的实现。Java 安全 API 涵盖了广泛的领域&#xff0c;包括加密、公钥基础设施、安全通信、身份验证和访问控制。Java 安全技术为开发人员提供了编写应用程序的全面安全框架&#xff0c;还为用户或管理员提供了…...

探索RAG:加强问答能力的新技术

文章目录 1. RAG是什么&#xff1f;1.1 技术简介1.2 挑战与解决方案1.3 RAG技术构成1.4 应用与前景 2. RAG架构详解2.1 典型的RAG应用有两个主要组件2.2 从原始数据到答案的完整流程 3. RAG在实际应用中的案例 1. RAG是什么&#xff1f; 1.1 技术简介 Retrieval Augmented Ge…...

赛氪网|2024中国翻译协会年会“AI科技时代竞赛与就业”分论坛

在2024年中国翻译协会年会期间&#xff0c;赛氪网与中西部翻译协会共同体多边合作平台共同承办&#xff0c;于3月30日下午在长沙成功举办了“AI科技时代竞赛与就业分论坛”。该论坛汇聚了众多翻译界、科技界和教育界的专家学者&#xff0c;共同探讨科技、实践、就业与竞赛人才培…...

【Jmeter+Influxdb+Grafana性能监控平台安装与部署】

JmeterInfluxdbGrafana性能监控平台安装与部署 前言Influxdb安装与连接Jmeternfluxdb下载&#xff08;winodws&#xff09;Grafana安装与配置 前言 我们在性能测试过程中&#xff0c;在需要较大并发时&#xff0c;为了尽量避免使用GUI界面来节省资源&#xff0c;通常使用命令行…...

Arm Neoverse CMN-700架构与寄存器配置详解

1. Arm Neoverse CMN-700架构概览在现代多核处理器设计中&#xff0c;如何高效实现缓存一致性一直是核心挑战。Arm Neoverse CMN-700&#xff08;Coherent Mesh Network&#xff09;作为第二代一致性网格网络IP&#xff0c;采用分布式架构解决了从16核到256核规模的数据一致性问…...

多机驱动振动系统同步控制理论【附模型】

✨ 长期致力于振动机械、自同步、控制同步、GA-BP PID、定速比研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;GA-BP神经网络PID控制器设计及其参数自…...

锂电池安全使用指南:从原理到实践,避免常见风险

1. 项目概述&#xff1a;从“能用”到“用好”的锂电安全课如果你玩过任何需要脱离电源线工作的电子项目&#xff0c;无论是给一个Arduino小车供电&#xff0c;还是驱动一架四轴飞行器&#xff0c;最终都绕不开一个核心问题&#xff1a;电源。从最基础的碱性电池&#xff0c;到…...

基于节点电价的电网对电动汽车接纳能力评估模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Gitee领跑本土化开发体验:深度解析国内代码托管平台的选择之道

在数字化转型浪潮中&#xff0c;代码托管平台已成为开发者团队不可或缺的基础设施。国内市场经过多年发展&#xff0c;已经从单一的海外平台依赖&#xff0c;逐步形成了多元化的平台选择生态。其中&#xff0c;Gitee凭借其本土化优势脱颖而出&#xff0c;成为众多国内开发团队的…...

用HSPICE玩转CMOS反相器:手把手教你分析尺寸、延迟与功耗的权衡

用HSPICE玩转CMOS反相器&#xff1a;手把手教你分析尺寸、延迟与功耗的权衡 在集成电路设计的浩瀚宇宙中&#xff0c;CMOS反相器就像是一颗不起眼却至关重要的基础星体。作为数字电路中最简单的构建模块&#xff0c;它的性能表现直接影响着整个系统的运行效率。对于已经掌握HS…...

利用 Taotoken 统一 API 为内部低代码平台集成 AI 能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用 Taotoken 统一 API 为内部低代码平台集成 AI 能力 为内部低代码平台引入 AI 能力&#xff0c;正成为提升平台自动化和智能化水…...

QQ截图独立版:免费获取专业级屏幕工具集的完整指南

QQ截图独立版&#xff1a;免费获取专业级屏幕工具集的完整指南 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot 还在为寻找功…...

087、机器人运动学:雅可比矩阵

087、机器人运动学:雅可比矩阵 一、一个让我熬夜三天的调试故事 去年做六轴协作机器人末端力控的时候,遇到一个诡异的问题:机器人末端在某个位姿下,明明关节速度指令给得很平滑,末端速度却突然跳变,导致力控震荡。当时我盯着示波器上的速度曲线,百思不得其解——运动学…...

Cursor配置管理:使用符号链接与CLI实现多项目环境一键切换

1. 项目概述&#xff1a;为什么我们需要管理Cursor的配置&#xff1f;如果你和我一样&#xff0c;每天大部分时间都泡在Cursor这个AI驱动的代码编辑器里&#xff0c;那你肯定遇到过这样的场景&#xff1a;早上打开电脑&#xff0c;准备开始一个全新的前端项目&#xff0c;你熟练…...