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

サブクエリを使用せずに最大シーケンスの行のみを選択する方法は?

    SQL-Server(> =2005)またはOracle(10g?)を想定:

    WITH CTE AS
    ( 
       SELECT
           ROW_NUMBER() OVER (PARTITION BY ID  ORDER BY Seq DESC) AS RN
           , ID, Age
       FROM 
           Persons
    )
    SELECT ID, Age 
    FROM CTE
    WHERE RN = 1
    

    ROW_NUMBER 結果セットのパーティション内の行の連番を返します。

    編集 :ここで確認できるように、Oracleでも機能します:http://sqlfiddle.com/#!4 / b7e79 / 2/0



    1. 単一のexecSQLクエリで指定できるSQL変数の制限は何ですか

    2. listaggデータを使用可能な形式に?

    3. Oracleアプリr12でトレースを有効にする方法

    4. 最も近い日付を表示するSQLクエリ?