首页 > 数据库 >SQL去重的3种实用方法总结

SQL去重的3种实用方法总结

时间:2023-04-07 19:11:06浏览次数:38  
标签:总结 group min distinct 实用 UserResult SQL 分组 select

1.distinct去重

注意的点:distinct

只能一列去重,当distinct后跟大于1个参数时,他们之间的关系是&&(逻辑与)关系,只有全部条件相同才会去重

弊端:当查询的字段比较多时,distinct会作用多个字段,导致去重条件增多

select distinct UserResult from Table1

2.group by去重

去重原理:将重复的行进行分组,相同的数据只显示第一行

弊端:使用group by后,所有查询字段都需要使用聚合函数,比较繁琐

select min(UserName)UserName,min(UserSex)UserSex,min(UserSubject)UserSubject,min(UserResult)UserResult from Table1
group by UserResult

3.row_number() over (parttion by 分组列 order by 排序列)

弊端:.....

去重原理:现根据重复列进行分组,分组后再进行排序,不同的组序号为1,相同的组序号为2,排除为2的就达到了去重效果

select *from
(
--查询出重复行
select *,row_number() over (partition by UserResult order by UserResult desc)num from Table1
)A
where A.num=1

标签:总结,group,min,distinct,实用,UserResult,SQL,分组,select
From: https://www.cnblogs.com/golandhome/p/17297136.html

相关文章

  • 基于SqlSugar的开发框架循序渐进介绍(25)-- 基于SignalR实现多端的消息通讯
    基于ASP.NETCoreSignalR可以实现客户端和服务器之间进行即时通信。本篇随笔介绍一些SignalR的基础知识,以及结合对SqlSugar的开发框架的支持,实现SignalR的多端处理整合,从而实现Winform客户端,基于Vue3+ElementPlus的BS端整合,后面也可以实现对移动端的SignalR的整合通讯。适合Si......
  • mysqldump 命令导出数据,解决中文乱码问题
      https://www.cnblogs.com/LoveBB/p/16941639.html mysqldump-uroot-ppassword--add-drop-table--default-character-set=utf8--hex-blobdbname--result-file=F:\backup.sql......
  • mysql 求分组中位数、环比、同比、中位数的环比、同比
    说明中位数、环比、同比概念请自行百度,本文求 字段A中位数、根据字段B分组后字段A中位数、字段A环比、字段A同比、字段A中位数的环比、字段A中位数的同比。一、表结构如下图 查询条件为 capital_namein('金融机构1','金融机构2'),以下查询的中位数、环比等都基于此条件;......
  • oracle, mysql, clickhouse创建表的DDL语句参考
    这里展示的oracle,mysql,clickhouse下面如何创建一个表的DDL语句。请注意这里的数据类型,在不同的表,表示形式不一样。   Oracle的DDL语句 --UPCENTER.PUB_PLATE_INFOdefinitionCREATETABLE"UPCENTER"."PUB_PLATE_INFO"("ISVALID"NUMBER(1,0)NO......
  • MySQL新身份验证插件caching_sha2_password
     用sequelpro工具登录,连接失败~!“Authenticationplugin'caching_sha2_password'cannotbeloaded”失败原因:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password解决办法:把mysql用户登录密码加密规则还原成mysql_nati......
  • 查询mysql的数据库容量
    查看所有数据库容量大小SELECT table_schemaAS'数据库', sum(table_rows)AS'记录数', sum( TRUNCATE(data_length/1024/1024/1024,2))AS'数据容量(G)', sum( TRUNCATE(index_length/1024/1024/1024,2))AS'索引容量(G)'FRO......
  • 基于keepalived双vip的MySQL高可用集群
    一、机器准备及IP地址规划ansible2.9.27ip:192.168.1.124prometheus192.168.1.103MySQLRouter8.0.32mysql集群master192.168.1.150slave192.168.1.151slave192.168.1.152延迟备份backup192.168.1.153keepalived集群192.168.1.148192.168.1.149项目名称:基......
  • 记一次达梦数据库虚拟表SQL优化记录分享
    前言:遇到问题不要怕,先看一看。语句看懂了,创建个索引,优化个处理方式,30S变0.3秒,速度提升90倍。 背景:达梦数据库、督办定制功能的一个查询列表慢(虚拟表)。语句:selectidasdbrw,hzrwnr,createdate,BB,whbh01,whbh02,whbh03,zkh,ykh,sfyrq,qtkckry,(selectcount(wfrb.requestid)from......
  • 计算机网络知识点全面总结(有这一篇就够了!!!)
    1.1计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。TCP/IP四层模型与OSI体系结构对比:1.3层次结构设计的基本原则各层之间是相互独立的;每一层需要有足够的灵活性;各层之间完全解耦。1.4计算机网络的性能指标速率:bps=bit/s......
  • sql 逐行累加
    sql逐行累加,包括当前行selectname,sl,sum(sl)over(partitionbynameorderbynamerowsbetweenunboundedprecedingandcurrentrow)asaccumulatefromtest;    可以实现在窗口中进行逐行累加selectuid,month,amount,sum(amount)over(partitionbyuid......