**SQL某一表中重复某一字段重复记录查询与处理

简介: sql某一表中重复某一字段重复记录查询与处理 1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)>12.
  • sql某一表中重复某一字段重复记录查询与处理
  •  
    • 1.查询出重复记录
       
       select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)>1


      2.重复记录只显示一条ID值最小或最大的记录

       select   id,* from   数据表 where houseno (select 重复记录字段 form 数据表 group by 重复记录

      字段 having count(重复记录字段)>1 )


      这样把houseno重复的的ID值全部显示出,那么我们如何只显示一条id最小或最大的记录呢?

      关键是在上面sql的where子句中select 重复记录字段 form 数据表 group by 重复记录字段 having count(

      重复记录字段)>1
      修改为
      select min(id) form 数据表 group by 重复记录字段 having count(重复记录字段)>1

      这样就查询重复记录字段中ID最小值

      那么上面的语句就是

        select   id,* from   数据表 where houseno (select min(id) form 数据表 group by 重复记录字段

      having count(重复记录字段)>1 )


      3.至于对重复记录执行delete update 就非常简单啦

        例如只保留最小id的一条
         
         delete 数据表 where id in (select max(id ) from 数据包 group by 重复记录字段 having count(重

      复记录字段)>1)
       
       
       update 操作不说啦都一样。


      4.group by  字段 having count与distinct的区别

      distct查询显示全部字段值都是一样的唯一,一条记录

       例如
      id     name   sex
      43 111 1
      44 111 1
      45 111 2
      46 222 2
      47 222 2
      48 333 1
      49 333 1

      SELECT distinct
            [name]
            ,[sex]
        FROM [database].[dbo].[a]

      要想实现上面的要去掉 sex字段 改成

      SELECT distinct
            [name]
           
        FROM [database].[dbo].[a]


      但要想取得重复ID最小值不建议用distinct。
      总结:


       对于重复记录关键是查出 :采用group by 字段 having count(字段)>1 
       取得最小id的一条(很关键) :采用min(id)

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
目录
相关文章
|
20天前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
89 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
27天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
36 8
|
1月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
57 4
|
1月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
1月前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
136 10
|
1月前
|
SQL 关系型数据库 MySQL
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
35 0
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。