Oracleの各一意のユーザーIDの最大値を取得
このガイドは、Oracleテーブルから各異なるユーザーIDに関連付けられた最大値を効率的に抽出する方法を示しています。 次のように構造化されたテーブルを仮定します:
<code>UserId, Value, Date</code>
目的は、UserId
とそれに対応するValue
を取得することです。ここで、Date
は各ユーザーの最新です。
これを実現するための効果的なOracle SQLクエリは次のとおりです
(
)の各行を比較して、同じ<code class="language-sql">SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON (t1.UserId = t2.UserId AND t1."Date" < t2."Date") WHERE t2.UserId IS NULL;</code>
としてエイリアス)の各行を比較します。結合条件LEFT OUTER JOIN
は、後日の行のみが考慮されることを保証します。mytable
t1
t2
句は結果をフィルタリングします。 UserId
はt1."Date" < t2."Date"
は、同じ
が存在しないことを示します。 したがって、これらの行は各ユーザーの最大日付を表します。
WHERE t2.UserId IS NULL
t2.UserId
例:NULL
UserId
Date
クエリが返されます:
このアプローチは効率的であり、サブクエリやウィンドウ機能の必要性を回避するため、Oracleデータベースの堅牢なソリューションになります。以上がOracle テーブル内の各個別ユーザー ID の最大値を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。