首页 > 数据库 >sql 过滤重复字段,取最早或最新记录

sql 过滤重复字段,取最早或最新记录

时间:2023-03-29 15:36:07浏览次数:32  
标签:06 Temp 重复 CreateDate TestName -- 过滤 sql select

--可以将重复字段,取最早的一次,同理,也可以取时间最新的一次

--方法一
with tmp as(
        select row_number() over (partition by 分组字段 order by 时间字段  ) i,
 
                *
 
        from 表名
 
        where 条件
)
select
        *
from tmp
where i=1;
 
--方法二
SELECT  
      *
from(
    select 
         *,
    row_number() over(partition by 分组字段 order by 时间字段 desc) as rank
    from 表名
    )Temp
where Temp.rank=1

例如:获取最新一条数据

DECLARE @Temp TABLE 
(id INT IDENTITY (1,1),
 TestName NVARCHAR(50),
 CreateDate DATETIME
) 
 
INSERT @Temp
(
    TestName,
    CreateDate
)
VALUES
(   N'张三',    
    '2022-06-06 16:53:09.753' 
    ),
(   N'张三',    
    '2022-06-07 14:00:00.000' 
    ),
(   N'李四',    
    '2022-06-06 16:53:09.753' 
    ),
(   N'李四',    
    '2022-06-08 14:00:00.000'
    );
 
    --方法一
	with tmp as(
        select row_number() over (partition by TestName order by CreateDate DESC  ) i,
 
                TestName,
				CreateDate
        from @Temp
       --这里没有用到条件,所以先注释掉
       -- where 条件
)
select
        TestName,
		CreateDate
from tmp
where i=1 
 
--方法二
SELECT  
       TestName,
	   CreateDate
from(
select 
       TestName,
	   CreateDate,
 row_number() over(partition by TestName order by CreateDate desc) as rank
from @Temp
 )Temp
where Temp.rank=1
即可获取到相应的最后一条记录

  

TestName CreateDate
李四 2022-06-08 14:00:00.000
张三 2022-06-07 14:00:00.000

标签:06,Temp,重复,CreateDate,TestName,--,过滤,sql,select
From: https://www.cnblogs.com/dlryxh/p/17269094.html

相关文章

  • MySQL之MHA高可用配置及故障切换实例
      一、MHA概述1.1MHA是什么MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问......
  • MySQL GTID主从复制
    MySQL在5.6的版本推出了GTID复制,相比传统的复制,GTID复制对于运维更加友好,这个事务是谁产⽣,产⽣多少事务,⾮常直接的标识出来,当然GTID也有限制,对于什么是GTID可以参考我之前......
  • MyCAT实现MySQL的读写分离
     在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变......
  • mysql结合binlog实现数据误删误改后的数据恢复
    mysql结合binlog实现数据误删误改后的数据恢复测试数据:建表CREATETABLE`student`(`id`intNOTNULLAUTO_INCREMENT,`name`varchar(255)COLLATEutf8mb4_gener......
  • NoSQL之 Redis配置与优化
    关系型数据库关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。sQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用......
  • MySQL高级语句(二)
     一、Mysql高阶语句1、别名字段别名、表格别名语法:SELECT“表格別名”.“字段1”[AS]“字段1別名”FROM“表格名”[AS]“表格別名”;123......
  • 字符串函数_Linux_python_R_SQL
    字符串处理grep查找命令筛选信息awkcut按照指定要求分割-awk截取列信息cut截取字符串信息awkFS对第一行没作用要用大写的BEGIN方法01.利用exp......
  • abap动态sql
    *&---------------------------------------------------------------------**&ReportZPARMETERS3*&*&---------------------------------------------------------......
  • 力扣26.删除有序数组中的重复项【顺序表】
    ......
  • Mysql主从同步
    一、主从复制的重要性   日常系统业务流量的增长,一台MySQL数据库服务器已经满足不了需求了,会负载过重,容易出现查询效率慢、宕机的情况,导致用户体验差、数据的丢失。......