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

自己結合を使用したSQLクエリ.

    WITH ranked AS (
      SELECT
        *,
        rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
      FROM TableA
    )
    SELECT
      r1.Id,
      r1.Dt,
      r1.Stat,
      r1.RecId
    FROM ranked r1
      INNER JOIN ranked r2 ON r1.RecId = r2.RecId AND r2.rn = 1
    WHERE r1.Stat = 2
    

    更新 質問の更新後

    WITH ranked AS (
      SELECT
        *,
        rn = ROW_NUMBER() OVER (PARTITION BY RecId ORDER BY Dt DESC)
      FROM TableA
    )
    SELECT
      Id,
      Dt,
      Stat,
      RecId
    FROM ranked
    WHERE Stat = 2 AND rn = 1
    


    1. SQL Server 2008 - トランザクション ログの縮小 - 自動化する方法はありますか?

    2. varcharとnvarcharの違いは何ですか?

    3. Oracleの異なるCURRENT_TIMESTAMPとSYSDATE

    4. 州の複数選択リストボックスが別のリストボックス(Php、mysql、ajax)のすべての都市を表示していない