簡體   English   中英

根據不同行中的值從同一列中選擇值(如INDEX / MATCH?)

[英]Select Values from Same Column Based on Value in Different Row (Like INDEX/MATCH?)

我有下表:

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

我正在嘗試編寫一個select查詢,它基本上會返回不同的ID,然后是三個包含每個狀態(開始,停止,完成)日期戳的新列。 把我的頭圍繞着箱子,子查詢等,但沒有得到我想要的結果。 我會在Excel中使用INDEX / MATCH但這個數據庫是巨大的。

警告:

  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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM