mysql - 在 MySQL 的一系列项目中查找第一项

标签 mysql

我在 MySQL DB 中有以下数据,我需要找到第一个 BUY/SELL(见状态列)的出现以及相应的 Stock 及其相应的 Price

例如我的表中有以下数据:

enter image description here

为了更好地理解,我已经用黄色突出显示了 AAPL 的第一个买入和卖出,以及 MSFT 的橙色。

MySQL 中的查询应该给我以下结果:

enter image description here

最佳答案

你可以试试这个

SELECT     current.Date, 
           current.Stock, 
           current.Price, 
           current.Status 
FROM       <your table> current 
LEFT JOIN <your table> previous 
ON         previous.Date = 
           (SELECT MAX(t.Date) 
           FROM   <your table> t 
           WHERE  t.Date < current.Date)
WHERE  current.Status <> previous.Status OR previous.Status IS NULL
ORDER BY current.Date

关于mysql - 在 MySQL 的一系列项目中查找第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46172739/

相关文章:

mysql - 如何使用 PROCEDURE 在 MySQL 上运行多个查询?

MySQL:将整行从一个复制到另一个并删除原始

javascript - 带有 Java 的 JS 函数的 onload 不起作用

mysql - 如何 LEFT JOIN 逗号分隔列表?

mysql - 像这样编写 MySQL 查询是否正确?

mysql - SQL LEFT-JOIN 带有 2 个外键并将它们合并为一行 (MySQL)

javascript - 当谷歌地图标记移动时更新mysql数据库

mysql - 优化案例陈述的最佳方法是什么?

mysql - 限制内连接表上的一个结果

php - 检查sql行是否存在的方法?