把数据库表中某几列值相同的行去重,只保留一行

    xiaoxiao2021-03-25  131

    使用分析函数row_number() over (partition by … order by …)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。

    其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的顺序。

    示例(SQL Server 2005或以上适用):

    select s.* from ( select *, row_number() over (partition by [列名1],[列名2] order by [列名]) as group_idx from table_name ) s where s.group_idx = 1
    转载请注明原文地址: https://ju.6miu.com/read-5692.html

    最新回复(0)