sql server 分组

分组筛选第一条

    SELECT * from(
        SELECT
        *, row_number () OVER (
            partition BY [分组列]
            ORDER BY [排序列] DESC
        ) rowid
        FROM [table]
        WHERE 1=1
    ) t
    WHERE rowid = 1;

分组后删除多余的,保留第一条

    delete [table] where 主键 in(
        SELECT 主键 from(
            SELECT
            *, row_number () OVER (
                partition BY [分组列]
                ORDER BY [排序列] DESC
            ) rowid
            FROM [table]
            WHERE 1=1
        ) t
        WHERE rowid >1
    )

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章