首頁 > 資料庫 > mysql教程 > 如何找到資料庫中每種證券的最新位置和 ID?

如何找到資料庫中每種證券的最新位置和 ID?

Susan Sarandon
發布: 2025-01-04 13:33:39
原創
689 人瀏覽過

How to Find the Most Recent Position and ID for Each Security in a Database?

分組最大值

問題:

在包含多個股票的表中檢索每個證券的最新倉位及其對應的ID具有相同安全性的部位。

資料表:

id security buy_date
26 PCS 2012-02-08
27 PCS 2013-01-19
28 RDN 2012-04-17
29 RDN 2012-05-19
30 RDN 2012-08-18
31 RDN 2012-09-19
32 HK 2012-09-25
33 HK 2012-11-13
34 HK 2013-01-19
35 SGI 2013-01-17
36 SGI 2013-02-16
18084 KERX 2013-02-20
18249 KERX 0000-00-00

解:

使用LEFT JOIN 和NULL 過濾:使用LEFT JOIN 和NULL 過濾:

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;
登入後複製

在此查詢中,我們使用 LEFT JOIN 來合併倉位表與其自身,並按安全性來匹配行。條件 p1.buy_date 然後,WHERE 子句會過濾掉存在最新持倉的任何行,只留下每個證券的最新持倉。

結果:

id security buy_date
27 PCS 2013-01-19
31 RDN 2012-09-19
34 HK 2013-01-19
36 SGI 2013-02-16
18084 KERX 2013-02-20

以上是如何找到資料庫中每種證券的最新位置和 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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