Oracle SQL の各グループの最新エントリの抽出
このチュートリアルでは、タイムスタンプに基づいて各グループの最新レコードを取得するという一般的なデータベース タスクを説明します。 例として、ID、タイムスタンプ、数量を含むテーブルを使用します。
チャレンジ:
ID、タイムスタンプ (「日付」)、および数量 (「数量」) 列を含むテーブルがある場合、一意の ID ごとに最新の数量 (およびそれに関連付けられたタイムスタンプ) を効率的に選択するにはどうすればよいですか?
解決策:
これは、次のアプローチを使用して実現できます:
次の Oracle SQL クエリは、このソリューションを実装します:
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
クエリの拡張:
この基本的なクエリは、より複雑なニーズを満たすように調整できます。
WHERE
句を追加して、結果を特定の期間に制限します。id
列で結合することにより、追加のテーブルからのデータを統合します。 たとえば、ID と名前を含むテーブルに結合して、出力に名前を含めることができます。このメソッドは、Oracle SQL のタイムスタンプに基づいてグループごとの最新の値を取得する堅牢かつ効率的な方法を提供し、さまざまなデータ分析および操作タスクに適用できます。
以上がOracle SQLのタイムスタンプに基づいて各グループの最新の値を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。