分組最大值:檢索每個證券的最新頭寸
在提供的數據集中,您的目標是檢索每種證券的最新頭寸。您已嘗試使用基於 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中文網其他相關文章!