首頁 > 資料庫 > mysql教程 > 如何使用 SQL 高效率檢索每個證券的最新倉位?

如何使用 SQL 高效率檢索每個證券的最新倉位?

Linda Hamilton
發布: 2025-01-04 18:11:42
原創
452 人瀏覽過

How to Efficiently Retrieve the Latest Position for Each Security Using SQL?

分組最大值:檢索每個證券的最新頭寸

在提供的數據集中,您的目標是檢索每種證券的最新頭寸。您已嘗試使用基於 MAX() 聚合函數的查詢,但它只會傳回一行。

要解決此問題,您可以採取另一種利用 LEFT JOIN 的方法。以下是一個有效實現所需結果的最佳化查詢:

SELECT p1.id,
       p1.security,
       p1.buy_date
       FROM positions p1
left join
            positions p2
                on p1.security = p2.security
                   and p1.buy_date < p2.buy_date
      where
      p2.id is null;
登入後複製

此查詢執行表與其自身的外連接,排除相同證券存在較晚購買日期的行。因此,它會為每種證券返回最新購買日期的一行。

透過利用此最佳化方法,您可以大幅減少查詢執行時間並有效地檢索所需資訊。

以上是如何使用 SQL 高效率檢索每個證券的最新倉位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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