首頁 > 資料庫 > mysql教程 > 如何找出 Oracle 表中每個不同使用者 ID 的最大值?

如何找出 Oracle 表中每個不同使用者 ID 的最大值?

Linda Hamilton
發布: 2025-01-25 18:23:11
原創
715 人瀏覽過

How to Find the Maximum Value for Each Distinct User ID in an Oracle Table?

檢索 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 JOINmytable(別名為 t1)中的每一行與具有相同 t2 的所有其他行(別名為 UserId)進行比較。連接條件 t1."Date" < t2."Date" 確保僅考慮日期較晚的行。

WHERE t2.UserId IS NULL 子句過濾結果。 t2.UserIdNULL 的行表示不存在具有相同 UserId 和更晚的 Date 的其他行。 因此,這些行代表每個使用者的最大日期。

範例:

如果mytable包含以下數據:

UserId Value Date
1 5 2023-03-08
1 10 2023-03-15
2 3 2023-04-01
2 7 2023-04-10

查詢將回傳:

UserId Value Date
1 10 2023-03-15
2 7 2023-04-10

這種方法非常高效,並且不需要子查詢或視窗函數,使其成為 Oracle 資料庫的強大解決方案。

以上是如何找出 Oracle 表中每個不同使用者 ID 的最大值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板