Oracleで同じテーブルの2つの行を比較する方法は

概要:このチュートリアルでは、Oracleで同じテーブル内の2つの行を比較する方法を学習します。

すべての製品の価格履歴を格納するproduct_pricesテーブルがあると仮定します。 次のステートメントは、product_pricesテーブルを作成します:

Code language: SQL (Structured Query Language) (sql)

product_pricesテーブルには次の列があります:

  • id 値が自動的に生成されるid列です。 idは、テーブルの主キーです。
  • product_idは、製品を識別する製品idを格納します。
  • valid_fromは、定価が有効である発効日を格納します。
  • list_priceは、製品の定価を格納します。

次のINSERTステートメントは、product_pricesテーブルにいくつかの行を挿入します:

Code language: SQL (Structured Query Language) (sql)

ご覧のとおり、製品idの価格が変更されます。 後続の各変更の違いを見つけるには、2つの連続する行を比較する必要があります。

id列にギャップがなく、以前の有効開始日の定価が後の有効開始日の定価の前に挿入されていると仮定します。100:

Code language: SQL (Structured Query Language) (sql)
Oracle

の同じテーブルの2つの行を比較する方法このクエリでは、product_pricesテーブルを自分自身に結合する自己結合を使用しました。 次の結合述語では、現在の行と前の行を使用できます。ここで、Oracleの同じテーブル内の2つの行を比較する方法を知っている必要があります。

Write a Comment

メールアドレスが公開されることはありません。