[英]How to get temporal sequence by mysql
在我的表格中,有一個id列,一個日期列和一個狀態列,如下所示:
ID DATE STATUS
1 0106 A
1 0107 A
1 0112 A
1 0130 B
1 0201 A
2 0102 C
2 0107 C
我想獲得每個ID的時間順序。 這意味着,如果在相鄰時間中一個id處於相同狀態,則將省略前一個。 查詢結果如下:
ID DATE STATUS
1 0112 A
1 0130 B
1 0201 A
2 0107 C
如何通過MySQL來實現?
您必須使用變量來做到這一點:
select `id`, `date`, `status`
from (
select *, @rowno:=if(@grp = `STATUS`, @rowno + 1 , 1) as rowno, @grp := `STATUS`
from yourtable
cross join (select @grp := null, @rowno := 0) t
order by `id`, `date` desc
) t1
where rowno = 1
order by `id`, `date`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.