ROW_NUMBERで指定したレコード件数が更新された日を遡る

oracle-sql-row_number
  • URLをコピーしました!

OracleSQLROW_NUMBERを利用した特殊な検索方法をご紹介します。
ROW_NUMBERとは、その名の通り抽出したレコードに対して行番号を付与する分析関数ですが、今回はこの関数を利用して、最近データを更新したレコードが特定の件数に達した日が何日かを調べます。

目次

ROW_NUMVERを利用したサンプル

以下の例では、更新日を過去に遡って100件に達した日を取得するサンプルです。

解説

ROW_NUMBER()OVER()を利用し、ORDER BY更新日順で並び替えます。
WHERE句で件数が100件に達した更新日のMAX()を取得します。例えば、現在3月30日で、結果が3月20日だとすると、3月20〜3月30日に更新されたデータが100件以上ある事になります。上記はとても特殊な使い方です。
著者は試験などで特定の件数が欲しい場合に利用しました。
基本的な使い方についてはこちらをご参照ください。

あわせて読みたい
分析関数 ROW_NUMBER の使用例 - オラクル・Oracleをマスターするための基本と仕組み ROW_NUMBERファンクションの使用例と使用上の注意点、TOP n 〜

日付じゃなく何日前か知りたい

こちらと合わせると何日前も算出できます。

minory
SQLで2つの日付の差分日数を計算する【メモ】 | minory あるデータが何日前のデータなのか知りたい時ってあるよね〜?プログラミングでは、便利な関数が用意されていることもありますが、逆にタイムスタンプに変換して60だの24だ...

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次