2

データのテーブルがあり、最後から2番目のレコードを取得したいと思います。

これはどのように行われますか?

TABLE:        results
              -------
              30
              31
              35

31を取得する必要があります。

私はrownumを試してきましたが、うまくいかないようです。

4

2 に答える 2

4

2番目に大きい数が必要で、同点がないと仮定します

SELECT results
  FROM (SELECT results,
               rank() over (order by results desc) rnk
          FROM your_table_name)
 WHERE rnk = 2

rank同点の処理方法に応じて、、、、dense_rankまたはrow_number分析関数のいずれかが必要になる場合があります。たとえば、35が2つある場合、35を返しますか?または31?31が2つある場合、1つの行を返しますか?または、両方の31を返却しますか。

于 2012-05-10T18:57:58.763 に答える