sql >> データベース >  >> RDS >> Sqlserver

1列でグループ化しながら、50行より古いレコードのみを削除します

    テーブル スキーマを提供しなかったという事実を考慮して、テーブルが次のように見えるとしましょう

    MyDealersTable
    - DealerID
    - SomeOtherColumn
    - DealerMotherName
    - DealerSportInterest
    - SomeTimeStamp 
      

    次のようなものを試すことができます

    ;WITH Dealers AS (
        SELECT *,
            ROW_NUMBER() OVER(PARTITION BY DealerID ORDER BY SomeTimeStamp DESC) RowID
        FROM MyDealersTable
    )
    DELETE 
    FROM Dealers
    WHERE RowID > 50
      

    with common_table_expression (Transact-SQL) から




    1. MySQLで重複する日時範囲の合計量

    2. mod関数を使用したOracleのrownumの動作

    3. MySQLのラウンド日から週と月の初めまで

    4. SQLで日付を比較する方法