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

如何查找数据库中每种证券的最新位置和 ID?

Susan Sarandon
发布: 2025-01-04 13:33:39
原创
688 人浏览过

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 过滤:

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板