zoukankan      html  css  js  c++  java
  • partition 取数据中相同字段数据中取时间最大的一个值 并只保留一条

    目的:表中数据 某几个字段是重复的  现取出相同字段值时间最大的一个 并将其他删除
    数据库:

    ----若只是单独的查询唯一的数据:去除重复的方法
    select distinct(AppID) from dbo.T_Construct_ThreeTime
    -----利用partition  通过actiondate时间排序 重复字段appid  取出以appid为相同数据 字段n从1开始的所有数据 【可添加其他字段 以逗号隔开】
    select *,row_number() over(partition by appid order by actiondate desc) n from AuditInfo

    -----利用with as 删除cte中的重复数据
    ;with cte as(
     select *,row_number() over(partition by appid order by actiondate desc) n from AuditInfo
    )

    ----可先查询cte表数据 看是否通过appid相同字段 n为appid的自增值
    -----select * from cte

    删除cte表中 n不等于1的数据

    delete from cte where n!=1  ---n=1即删除的是n=1的所有数据

     数据若不多 可以将数据去重 添加至临时表 删除表数据 临时表添加到此表【不推荐】

  • 相关阅读:
    join
    PS1-4
    tftp + bras
    awk调用shell
    curl
    ssh
    查看cp进度,使用watch
    tftp
    scp 链接文件的问题 + tar
    mysql必知必会(三、使用mysql)
  • 原文地址:https://www.cnblogs.com/suwh/p/2475411.html
Copyright © 2011-2022 走看看