ホームページ > データベース > mysql チュートリアル > Oracle SQLのタイムスタンプに基づいて各グループの最新の値を取得する方法は?

Oracle SQLのタイムスタンプに基づいて各グループの最新の値を取得する方法は?

Susan Sarandon
リリース: 2025-01-21 15:47:10
オリジナル
297 人が閲覧しました

How to Retrieve the Latest Value for Each Group Based on Timestamp in Oracle SQL?

Oracle SQL の各グループの最新エントリの抽出

このチュートリアルでは、タイムスタンプに基づいて各グループの最新レコードを取得するという一般的なデータベース タスクを説明します。 例として、ID、タイムスタンプ、数量を含むテーブルを使用します。

チャレンジ:

ID、タイムスタンプ (「日付」)、および数量 (「数量」) 列を含むテーブルがある場合、一意の ID ごとに最新の数量 (およびそれに関連付けられたタイムスタンプ) を効率的に選択するにはどうすればよいですか?

解決策:

これは、次のアプローチを使用して実現できます:

  1. タイムスタンプによるランキング: 各 ID グループ内の各行に、タイムスタンプの降順でランクを割り当てます。
  2. 上位ランクの選択: 結果をフィルターして、各 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート