ホームページ >データベース >mysql チュートリアル >Oracle SQLで時間に基づいてグループごとの最新の値を取得する方法
Oracle SQL を使用してタイムスタンプに基づいてグループごとの最新のデータ ポイントを抽出する
このガイドでは、Oracle データベース内の各グループの最新の値をタイムスタンプ順に取得するためのいくつかの方法を説明します。
基本的なクエリ:
次のクエリは、各 id
の最新の値と、それに関連付けられた日付および数量を取得します。
<code class="language-sql">SELECT id, MAX(date) AS "DATE", MAX(quantity) AS "QUANTITY" FROM qtys GROUP BY id;</code>
方法 1: 特定の時間枠 (例: 過去 XX 分) によるフィルタリング
結果を過去 XX 分以内のエントリに制限するには、WHERE
句を組み込みます。
<code class="language-sql">SELECT id, date, quantity FROM qtys WHERE date > (SELECT MAX(date) - INTERVAL 'XX' MINUTE FROM qtys);</code>
方法 2: ID と別のテーブルのテキスト データを組み合わせる
「idnames」という名前のテーブルからの対応するテキストを ID に追加するには、次のクエリを使用します。
<code class="language-sql">SELECT t1.id || '-' || t2.idname AS "ID-IDNAME", MAX(t1.date) AS "DATE", MAX(t1.quantity) AS "QUANTITY" FROM qtys t1 INNER JOIN idnames t2 ON t1.id = t2.id GROUP BY t1.id;</code>
結果の例:
予想される出力形式は次のようになります:
<code>ID-IDNAME DATE QUANTITY ---------- ------------------- ---------- 1-testid1 2010-01-04 11:00 152 2-testid2 2010-01-04 11:00 210 3-testid3 2010-01-04 10:30 214 4-testid4 2010-01-04 10:45 122</code>
以上がOracle SQLで時間に基づいてグループごとの最新の値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。