首页 > 编程问答 >如何识别 SQL 中的重复值

如何识别 SQL 中的重复值

时间:2024-06-06 12:27:02浏览次数:12  
标签:sql duplicates

我正试图查找特定数据集中生成的重复数据

我最初的查询是

SELECT
    b.admidate, a.token_person_id、
    COUNT (DISTINCT(a.token_person_id)) AS patientCount
FROM
    new_alzheimers_agegroup2 a
LEFT JOIN
    住院病人映射 b ON b.token_person_id = a.token_person_id
                        且 a.indexdate = b.disdate
ORDER BY
    a.token_person_id

但与原始数据相比,我发现有 1500 个重复数据。我该如何创建一个能找到重复数据的查询?


为了找到重复的数据,你需要修改你的查询,以便查找 token_person_id admidate 组合中出现多次的记录。以下是如何操作的方法:

SELECT
    b.admidate, a.token_person_id, 
    COUNT(*) AS duplicate_count
FROM
    new_alzheimers_agegroup2 a
LEFT JOIN
    住院病人映射 b ON b.token_person_id = a.token_person_id AND a.indexdate = b.disdate
GROUP BY
    b.admidate, a.token_person_id
HAVING 
    COUNT(*) > 1
ORDER BY
    duplicate_count DESC;

以下是此查询的工作原理:

  1. 分组: 我们使用 GROUP BY 子句根据 admidate token_person_id 对记录进行分组。这意味着具有相同 admidate token_person_id 的所有记录将被放在一起。

  2. 计数: COUNT(*) 函数计算每个组中的记录数。

  3. HAVING 子句: HAVING 子句用于过滤分组结果。在这种情况下,我们只保留计数大于 1 的组,这表示存在重复的 admidate token_person_id 组合。

  4. 排序: 最后,我们使用 ORDER BY 子句按重复次数降序对结果进行排序,以便首先看到重复次数最多的记录。

此查询将返回一个表,其中包含重复的 admidate token_person_id 组合、重复次数以及其他相关信息。然后,可以使用此信息来识别和处理数据集中的重复数据。

标签:sql,duplicates
From: 78584470

相关文章

  • Python - Django - MySQL #need to add distinct() after select_related().distinct(
    所以这是ads/views.py还有ads/models.py、ads/forms、ads/urls.py和其他文件,但评分器抱怨的是这个views.py...检索到3806个HTML字符测试已完成:在页面顶部发现菜单栏搜索"HHGTTG_421717639962"时发现多个广告。您可能需要在views.py中的select_related().di......
  • clickhouse 同步mysql数据
    1、mysql端1.1、配置mysql启动二进制复制vim/etc/my.conf在[mysqld]下添加[mysqld]server-id=1log-bin=mysql-binbinlog_format=ROWgtid_mode=ONenforce_gtid_consistency=ONdefault_authentication_plugin=mysql_native_password 修改配置需要重启mysql服务 ......
  • 003基于SSM+Jsp+Mysql的美好生活日志网
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示前台首页用户注册用户登录日记信息管理员登录用户管理日记信息管理美食信息管理景点信息管......
  • MySQL查询数据库响应时长的方法
    要查询MySQL数据库的响应时长,通常我们需要测量查询执行的时间。MySQL本身并不直接提供一个查询来显示每个查询的响应时长历史记录,但我们可以使用MySQL的内置函数和工具来测量和记录查询的执行时间。以下是一些方法,我们可以用来测量MySQL查询的响应时长:1.使用SHOWPROFILES(......
  • MySQL Shell 的简单使用
    util.dumpTables():导出表util.dumpSchemas():导出单个或多个schemautil.dumpInstance():导出整个实例 util.dumpTables()的使用语法:util.dumpTables(schema,tables,outputUrl[,options])其中:·schema:是表所在的schema·tables:是一个数组,表示要导出的表的列表·outp......
  • MySQL清空所有表的数据的方法
    1.MySQL清空所有表的数据的方法要清空MySQL数据库中所有表的数据,但保留表结构,我们可以采取以下几种方法。这里,我将提供几种常用的方法,并给出相应的SQL代码示例。1.1方法一:使用TRUNCATETABLE命令(针对每个表)TRUNCATETABLE命令会删除表中的所有数据,但不会重置表的自增计数器(AUTO......
  • SQL—数据库查询语言,全面详解演示,入门进阶必会
    文章目录一、基础二、创建表三、修改表四、插入五、更新六、删除七、查询DISTINCTLIMIT八、排序九、过滤十、通配符十一、计算字段十二、函数汇总文本处理日期和时间处理数值处理十三、分组十四、子查询十五、连接内连接自连接自然连接外连接十六、组合查询十七、视图......
  • Yii2 框架中,通过 yii\db\Command 对象来执行原生 SQL 语句
    在Yii2中,你可以通过yii\db\Command对象来执行原生SQL语句。这包括查询操作(如SELECT)和数据操作(如INSERT、UPDATE、DELETE)。以下是一些常见的例子,展示如何在Yii2中执行SQL语句。执行查询语句执行SELECT查询并获取结果你可以使用queryAll()、queryOne()、queryColu......
  • MySQL 中的 EXPLAIN 命令
    在MySQL中,EXPLAIN命令用于显示MySQL优化器如何执行SQL查询的详细信息。它是一个强大的工具,用于分析查询的执行计划,以帮助优化和调试查询性能。使用方法要使用EXPLAIN命令,只需在要分析的SQL查询前加上EXPLAIN关键字。例如:EXPLAINSELECT*FROMusersWHEREage>......
  • SQL注入的业务场景以及危害
    SQL注入的业务场景以及危害在现代Web应用中,数据库是存储和检索数据的核心组件。然而,当Web应用未能正确验证和过滤用户输入时,就可能会遭受SQL注入攻击。SQL注入是一种严重的安全漏洞,它允许攻击者执行恶意的SQL代码,进而获取、修改或删除数据库中的数据,甚至控制整个服务器。本文将探......