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

オラクルで最新の従業員レコードを取得するにはどうすればよいですか?

    SELECT * FROM 
    ( SELECT  
        e.*,
        ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
    FROM  
        EMPLOYEE  e)
    WHERE r = 1;
    

    上記は、すべての個別のemp_idに対して最大のeffective__Dateを持つレコードを取得します。

    特定の日付のレコードを返すという2番目の要件は、次のクエリで満たす必要があります:

    (「ステータスASC」-同じ日付の「リーバー」もある場合、「ジョイナー」ステータスの取得を処理します。)

     SELECT * FROM 
    ( SELECT  
        e.*,
        ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC, status ASC) r
    FROM  
        EMPLOYEE  e
    WHERE effective_date <= '<your desired date>')
    WHERE r=1;
    


    1. Cygnus-NGSIはPostgreSQLにデータを保存しません

    2. pg_dumpを使用してテーブルを別のデータベースにコピーできません

    3. PostGIS、いくつかのポイントからポリゴンを作成することが可能です

    4. InnoDB/MyISAMレコードを挿入するために必要な時間の違い