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的所有数据

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

  • 相关阅读:
    error: with modifiers "public "
    移除元素
    删除有序数组中的重复项
    最长公共前缀
    如何杀死window进程
    IDEA卡顿问题
    合并两个有序链表
    开闭原则
    字符集和sql语句GROUPBY查询的版本问题
    里氏替换原则
  • 原文地址:https://www.cnblogs.com/suwh/p/2475411.html
Copyright © 2011-2022 走看看