【问题标题】:Select Values from Same Column Based on Value in Different Row (Like INDEX/MATCH?)根据不同行中的值从同一列中选择值(如索引/匹配?)
【发布时间】:2016-06-17 03:12:25
【问题描述】:

我有下表:

ID          Status  Datestamp

241112069   Stop    6/15/2016 16:46
241112069   Start   6/15/2016 16:28
241108880   Stop    6/15/2016 15:42
241105741   Finish  6/15/2016 17:58
241105741   Start   6/15/2016 15:24
241105741   Stop    6/15/2016 15:24
241105111   Stop    6/15/2016 15:31
241105111   Stop    6/15/2016 15:31
241105111   Start   6/15/2016 15:31
241105110   Stop    6/15/2016 15:31
241105110   Start   6/15/2016 15:31
241105110   Stop    6/15/2016 15:31
241105109   Stop    6/15/2016 15:31
241105109   Stop    6/15/2016 15:31
241103498   Stop    6/15/2016 15:12
241103498   Start   6/15/2016 15:12
241102948   Stop    6/15/2016 15:10
241102380   Stop    6/15/2016 15:07
241101836   Stop    6/15/2016 15:03
241101836   Start   6/15/2016 15:03
241101835   Stop    6/15/2016 15:03
241101835   Start   6/15/2016 15:03
241101537   Finish  6/15/2016 17:55
241101537   Stop    6/15/2016 15:02
241101537   Start   6/15/2016 15:02
241097936   Stop    6/15/2016 14:54
241097936   Finish  6/15/2016 15:16
241097936   Start   6/15/2016 14:44

我正在尝试编写一个选择查询,该查询基本上将返回不同的 ID,然后是三个新列,其中包含每个状态(开始、停止、完成)的日期戳。在案例、子查询等方面绞尽脑汁,但没有得到我想要的结果。我会在 Excel 中使用 INDEX/MATCH,但这个数据库非常庞大。

警告:

  1. 同一状态/订单或空白值可以有多个状态条目。对于多个条目,我只想要第一个。

感谢任何帮助。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    可能是一些内部连接

    select a.id, min(a.datestamp) as start, min(b.datestamp) as stop, min( c.datestamp ) as finish
    from my_table as a
    inner join my_table as b on a.id = b.id and b.status = 'stop'
    inner join my_table as c on a.id = c.id and c.status = 'Finish'
    where  a.status = 'Start';
    group by a.id
    

    【讨论】:

    • and a.status = 'Start'; 必须是 where a.status = 'Start';
    • @BrianRudolph 对 .. 谢谢 .. 我已经更新了答案
    • 哇,我想我想多了。没想到自己加入!
    • 嗯..这是你要找的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2017-05-19
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多