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

时间:2017-09-12 09:27:41

标签: mysql

我在MySQL DB中有以下数据,我需要找到第一个买/卖的发生(参见状态栏)以及相应的股票及其相应的价格

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

enter image description here

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

你可以试试这个

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