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

mysql 数据查重与查重分页

起因是公司的crm录入不规范,有重复数据。

之后考虑到需要手动处理,首先需要自动找出重复的数据

查重要求:

存在多个不允许重复的字段,任一字段重复,则判断为同一个客户。划分到同一重复组中。

查重sql如下

SELECT CONCAT('组', dense_rank() OVER (ORDER BY group_key)) AS group_info,id, name, tel
FROM (SELECT id, name, tel,CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1')) AS group_key,COUNT(*) OVER (PARTITION BY CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1'))) AS group_countFROM customer
) AS subquery
WHERE group_count > 1
ORDER BY group_key

通过上述sql可以获得一个查重的sql。

那么接下来的问题是如果重复数据大,我们是需要一个分页的。首先我们需要知道重复了多少组。

用以下sql获取:

SELECT COUNT(*) AS total_count 
FROM (SELECT DISTINCT group_infoFROM (SELECT CONCAT('组', dense_rank() OVER (ORDER BY group_key)) AS group_info,id, name, tel
FROM (SELECT id, name, tel,CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1')) AS group_key,COUNT(*) OVER (PARTITION BY CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1'))) AS group_countFROM customer
) AS subquery
WHERE group_count > 1
ORDER BY group_key) AS data_counts
) AS distinct_groups;

这里的分页应当按照重复组分页,传统的分页就失效了。所以我们就需要手动计算分页。

把分组字段group_info中的组字去掉,按group_info进行大于,小于判断

SELECT dense_rank() OVER (ORDER BY group_key)  AS group_info,id, name, tel
FROM (SELECT id, name, tel,CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1')) AS group_key,COUNT(*) OVER (PARTITION BY CONCAT_WS('-', IF(name IS NULL, '', name),  IF(tel IS NULL, '', '1'))) AS group_countFROM customer
) AS subquery
WHERE group_count > 1
AND group_info>0 AND group_info<11
ORDER BY group_key

相关文章:

mysql 数据查重与查重分页

起因是公司的crm录入不规范&#xff0c;有重复数据。 之后考虑到需要手动处理&#xff0c;首先需要自动找出重复的数据 查重要求&#xff1a; 存在多个不允许重复的字段&#xff0c;任一字段重复&#xff0c;则判断为同一个客户。划分到同一重复组中。 查重sql如下 SELECT C…...

微服务(12)

目录 56.k8s是怎么进行服务注册的&#xff1f; 57.k8s集群外流量怎么访问Pod&#xff1f; 58.k8s数据持久化的方式有哪些&#xff1f; 59.Relica Set和Replication Controller之间有什么区别&#xff1f; 60.什么是Service Mesh&#xff08;服务网格&#xff09;&#x…...

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…...

【计算机毕业设计】SSM健身房管理系统

项目介绍 本项目为后台管理系统&#xff0c;主要分为管理员与用户两种角色&#xff1b; 登录页面,管理员首页,会员增删改查,教练增删改查,运动器材管理等功能。 用户角色包含以下功能&#xff1a; 用户登录页面,用户首页,选择课程,选择教练等功能。 环境需要 1.运行环境&a…...

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-启动设备的选择)

一,硬件启动方式选择 1.启动方式的选择 6ull支持多种启动方式。 比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 6ull是怎么支持多种外置flash启动程序的。 1.启动方式选择&#xff1a; BOOT_MODE0 and BOOT_MODE1&#xff0c;这两个是两个IO来控制的&#xff0c;…...

K8S Ingress-Nginx导出TCP端口

ingress-nginx导出TCP端口 Exposing TCP and UDP services - Ingress-Nginx Controllerhttps://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md helm upgrade ingress-nginx导出redis 6379端口&#xff08;这种方式最简单&…...

索引类型-哈希索引

一. 前言 前面我们简单介绍了数据库的B-Tree索引&#xff0c;下面我们介绍另一种索引类型-哈希索引。 二. 哈希索引的简介 哈希索引(hash index) 基于哈希表实现&#xff0c;只有精确匹配索引所有列的查询才有效。对于每一行数据&#xff0c;存储引擎都会对所有索引列计算一个…...

uniapp中组件库的Textarea 文本域的丰富使用方法

目录 #平台差异说明 #基本使用 #字数统计 #自动增高 #禁用状态 #下划线模式 #格式化处理 API #List Props #Methods #List Events 文本域此组件满足了可能出现的表单信息补充&#xff0c;编辑等实际逻辑的功能&#xff0c;内置了字数校验等 注意&#xff1a; 由于…...

LLM、AGI、多模态AI 篇三:微调模型

文章目录 系列LLM的几个应用层次Lora技术其他微调技术FreezeP-TuningQLoRA指令设计构建高质量的数据微调步骤系列 LLM、AGI、多模态AI 篇一:开源大语言模型简记 LLM、AGI、多模态AI 篇二:Prompt编写技巧 LLM、AGI、多模态AI 篇三...

IPC之十二:使用libdbus在D-Bus上异步发送/接收信号的实例

IPC 是 Linux 编程中一个重要的概念&#xff0c;IPC 有多种方式&#xff0c;本 IPC 系列文章的前十篇介绍了几乎所有的常用的 IPC 方法&#xff0c;每种方法都给出了具体实例&#xff0c;前面的文章里介绍了 D-Bus 的基本概念以及调用远程方法的实例&#xff0c;本文介绍 D-Bus…...

ES6之生成器(Generator)

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…...

Matlab技巧[绘画逻辑分析仪产生的数据]

绘画逻辑分析仪产生的数据 逻分上抓到了ADC数字信号,一共是10Bit,12MHZ的波形: 这里用并口协议已经解析出数据: 导出csv表格数据(这个数据为补码,所以要做数据转换): 现在要把这个数据绘制成波形,用Python和表格直接绘制速度太慢了,转了一圈发现MATLAB很好用,操作方法如下:…...

Go面试题学习

1.并发安全性 Go语言中的并发安全性是什么&#xff1f;如何确保并发安全性&#xff1f; 并发安全性是指在并发编程中&#xff0c;多个goroutine对共享资源的访问不会导致数据竞争和不确定的结果。 使用互斥锁&#xff08;Mutex&#xff09;&#xff1a;通过使用互斥锁来保护…...

SQL效率-查询条件需避免使用函数处理索引字段

一个sql效率的问题 问题 假设created_at 是date类型、是索引&#xff0c;那么以下2种方式有没效率差异&#xff1a; WHERE TO_CHAR(created_at, ‘YYYY-MM-DD’) ‘2020-02-01’WHERE created_at TO_DATE(‘2020-02-01’ , ‘YYYY-MM-DD’) DBA回复 有的&#xff0c;第一…...

【Spring 篇】Spring:轻松驾驭 Java 世界的利器

在 Java 开发领域&#xff0c;Spring 框架无疑是一颗璀璨的明星&#xff0c;它不仅提供了全面的企业级特性&#xff0c;还为开发者提供了简便而强大的开发方式。本文将深入探讨 Spring 框架的简介、配置和快速入门&#xff0c;带你轻松驾驭 Java 世界的利器。 Spring 简介 Sp…...

八个LOGO素材网站推荐分享

即时设计资源广场 在UI界面设计中&#xff0c;为了找到合适的图标icon&#xff0c;你有没有尝试过翻遍整个网络&#xff0c;找到自己想要的&#xff0c;却无法下载或收费使用&#xff1f;最后&#xff0c;只收集图标icon材料需要半天时间。专业设计师使用的图标icon设计材料“…...

React格式化规范

React并没有特定的格式要求&#xff0c;它允许开发者根据自己的喜好和项目需求来选择代码的格式化风格。然而&#xff0c;在React社区中有一些常见的约定和最佳实践&#xff0c;以下是一些常用的格式化规范和建议&#xff1a; 缩进&#xff1a;使用2个或4个空格来进行缩进&…...

如何利用Conda管理多种虚拟环境与Jupyter Notebook内核切换

写在开头 在数据科学与机器学习领域,项目之间可能存在不同的依赖关系和版本要求。为了有效管理这些差异,使用虚拟环境成为一种标准实践。本文将介绍如何利用Conda这一强大的环境管理工具,结合Jupyter Notebook,使得在不同项目之间灵活切换变得轻而易举。 2. Conda简介 2…...

博客摘录「 什么是QPS、TPS、吞吐量?- 高并发名词概念」2024年1月5日

1.什么是高并发&#xff1f; 高并发&#xff08;High Concurrency&#xff09;。通常是指系统在短时间内的大量操作。 高并发相关的常见指标有&#xff1a;QPS、TPS、吞吐量、并发数等。 2.QPS&#xff08;Query Per Second&#xff09; QPS每秒查询率&#xff0c;是指系统…...

PTA——逆序的三位数

程序每次读入一个正3位数&#xff0c;然后输出按位逆序的数字。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如输入700&#xff0c;输出应该是7。 输入格式&#xff1a; 每个测试是一个3位的正整数。 输出格式&#xff1a; 输出按位逆序…...

RePKG工具深度解析:Wallpaper Engine资源处理的技术方案

RePKG工具深度解析&#xff1a;Wallpaper Engine资源处理的技术方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 现实痛点层&#xff1a;破解资源处理的三重技术困境 游戏美术师…...

汽车电子电气架构演进:从分布式 ECU 到中央计算平台

目录 一、电子电气架构的六大演进阶段 二、高性能处理器与软件平台重构 三、宝马分层式电子电气架构设计 四、中央通信服务器与可扩展网络 五、车云一体架构与软件开发变革 六、架构升级代码示例&#xff1a;SOA 服务注册与调用 七、中央计算平台配置示例&#xff08;代码…...

你还在用for循环清洗CSV?Polars 2.0的scan_csv()+expression DSL已支持自动列式推断与零拷贝转换——立即升级避免被淘汰

第一章&#xff1a;Polars 2.0大规模数据清洗的核心范式变革Polars 2.0 不再将数据清洗视为一系列离散的、命令式的转换操作&#xff0c;而是以“惰性执行图列式语义优先”为基石&#xff0c;重构整个清洗生命周期。其核心变革体现在计算模型、内存管理与API设计三重维度的协同…...

[Python3高阶编程] - 横跨同步异步的利器: asgiref.sync

一、asgiref.sync 是什么&#xff1f;asgiref.sync 是 ASGI&#xff08;Asynchronous Server Gateway Interface&#xff09;参考实现库 asgiref 中的核心子模块&#xff0c;主要用于安全地桥接同步代码与异步代码。&#x1f4cc; 一句话总结&#xff1a; 它让你在异步环境中调…...

OpenClaw二次开发指南:Qwen3.5-9B模型适配与API扩展

OpenClaw二次开发指南&#xff1a;Qwen3.5-9B模型适配与API扩展 1. 为什么需要二次开发OpenClaw&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw对接本地部署的Qwen3.5-9B模型时&#xff0c;遇到了几个棘手问题&#xff1a;模型返回的JSON格式与框架预期不符、长…...

AI读脸术如何对接API?Flask服务封装部署教程

AI读脸术如何对接API&#xff1f;Flask服务封装部署教程 1. 为什么需要把“读脸术”变成API&#xff1f; 你可能已经试过这个AI读脸术镜像&#xff1a;上传一张照片&#xff0c;几秒内就能看到人脸框、性别和年龄段标签&#xff0c;效果干净利落。但如果你正开发一个用户管理…...

ECharts折线图入门学习:从基础到实战的完整指南

引言 折线图是数据可视化中最常用的图表类型之一&#xff0c;特别适合展示数据随时间变化的趋势。ECharts作为一款功能强大的JavaScript可视化库&#xff0c;提供了丰富的配置选项和交互功能&#xff0c;能够轻松创建出专业、美观的折线图。本文将带领大家从零开始学习ECharts折…...

DOL-CHS-MODS整合包零基础精通指南:从安装到定制全方位教程

DOL-CHS-MODS整合包零基础精通指南&#xff1a;从安装到定制全方位教程 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 项目价值定位 DOL-CHS-MODS作为Degrees of Lewdity的中文整合方案&#xff0…...

Visual C++组件维护完全指南:从问题诊断到系统优化

Visual C组件维护完全指南&#xff1a;从问题诊断到系统优化 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C组件维护是Windows系统稳定运行的关键环节&…...

Git二分法精准定位Bug

Git二分法定位Bug的原理Git二分法基于二分查找算法&#xff0c;通过自动在提交历史中不断缩小范围&#xff0c;定位引入Bug的特定提交。其核心是利用git bisect命令&#xff0c;结合测试脚本或手动验证&#xff0c;高效识别问题根源。准备工作确保本地仓库有完整的提交历史&…...