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

在MySQL中的一系列项中查找第一项,mysql,Mysql,我在MySQL数据库中有以下数据,我需要找到第一个买入/卖出See状态列以及相应的股票及其相应的价格 例如,我的表中有以下数据: 为了更好地理解,我已经强调了AAPL首次以黄色进行买卖,MSFT首次以橙色进行买卖 MySQL中的查询应该给出以下结果: 你可以试试这个 SELECT current.Date, current.Stock, current.Price, current.Status FROM

我在MySQL数据库中有以下数据,我需要找到第一个买入/卖出See状态列以及相应的股票及其相应的价格

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

为了更好地理解,我已经强调了AAPL首次以黄色进行买卖,MSFT首次以橙色进行买卖

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

你可以试试这个

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
你可以试试这个

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

SQL表中的值本身并没有排序,所以要使用什么来获取第一个。。你有时间戳吗?。。自动增量id?scaisEdge,我有一个时间戳:yyyy-mm-dd格式。你可以把日期拍下来。我认为日期不重要,因此没有在上面的示例中添加它。所以您希望该行与旧的timestamp_列相关吗?@scaisEdge:我添加了一个日期列供您参考。请参阅编辑后的文章。您可以按ASC或DESC订购日期,然后查找第一次出现的买入/卖出日期,也就是您第一次不清楚的日期,为什么2017年8月21日,182.46,在您的。。后果如上所述,sql数据本身没有顺序,数据中也没有隐式序列。那么,获取第一个数据的标准是什么呢?不仅要查看具有视图的表,sql表中的值本身也没有顺序,那么获取第一个数据要使用什么呢。。你有时间戳吗?。。自动增量id?scaisEdge,我有一个时间戳:yyyy-mm-dd格式。你可以把日期拍下来。我认为日期不重要,因此没有在上面的示例中添加它。所以您希望该行与旧的timestamp_列相关吗?@scaisEdge:我添加了一个日期列供您参考。请参阅编辑后的文章。您可以按ASC或DESC订购日期,然后查找第一次出现的买入/卖出日期,也就是您第一次不清楚的日期,为什么2017年8月21日,182.46,在您的。。后果正如我在上面所评论的那样,sql数据本身并不是有序的,数据中也没有隐含的序列。那么,第一个不只是用眼睛看表的标准是什么呢