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

テーブルから2番目に大きいまたは3番目に大きいエントリを取得する方法

    SELECT *
    FROM (
      SELECT some_column, 
             row_number() over (order by your_sort_column desc) as row_num
      FROM some_table
    ) t
    WHERE row_num = 3
    


    your_sort_columnで複数の行が同じ値になると予想される場合 ランク()関数を使用することもできます

    SELECT *
    FROM (
      SELECT some_column, 
             rank() over (order by your_sort_column desc) as row_rank
      FROM some_table
    ) t
    WHERE row_rank = 3
    
    これは複数の行を返す可能性があります。

    1. PostgreSQLのSTRING_AGG()関数

    2. 特定の日付に営業日数を追加する方法

    3. SQL Serverの計算列とは何ですか?

    4. [ビデオ]AnsibleとPostgreSQL