首页 > 数据库 > mysql教程 > 如何高效地查找数据库中每种证券的最新位置?

如何高效地查找数据库中每种证券的最新位置?

Susan Sarandon
发布: 2025-01-05 02:07:40
原创
876 人浏览过

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

分组最大值

您正在尝试从给定表中检索每个证券的最新位置。要实现此目的,您可以使用以下查询:

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;
登录后复制

在此查询中,左联接用于将职位表中的每一行与具有相同安全性的每个其他行进行比较。 buy_date 列用于确定哪一行是最新的。然后,WHERE 子句会过滤掉所有不是各自安全性最新的行。

此查询的结果将是一个表,每个安全性有一行,包含最新的 id、安全性和该证券的 buy_date 。

此查询比您之前尝试过的基于子查询的方法更有效,因为它不需要多次遍历持仓表。相反,它使用单个联接来识别每个证券的最新行,这使得处理大型数据集的速度显着加快。

以上是如何高效地查找数据库中每种证券的最新位置?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板