在mysql

时间:2018-08-27 14:25:32

标签: mysql

数据库中的样本记录(更准确)如下:

Id DateTime状态
1 2018-05-01 11:22:05 O
1 2018-05-01 11:22:05 O
1 2018-05-01 11:22:06 O
1 2018-05-01 11:22:07 O
1 2018-05-01 11:22:07 A
1 2018-05-01 11:22:09 A
1 2018-05-01 11:22:13 A
1 2018-05-01 11:23:01 O
1 2018-05-01 11:23:02 O
1 2018-05-01 11:23:05 A
1 2018-05-01 11:23:29 A
1 2018-05-02 07:15:01 O
1 2018-05-02 07:18:07 O

输出应如下所示。

1    2018-05-01 11:22:05    O
1    2018-05-01 11:22:07    O
1    2018-05-01 11:22:07    A
1    2018-05-01 11:22:13    A
1    2018-05-01 11:23:01    O
1    2018-05-01 11:23:02    O
1    2018-05-01 11:23:05    A
1    2018-05-01 11:23:29    A
1    2018-05-02 07:15:01    O
1    2018-05-02 07:18:07    O

2 个答案:

答案 0 :(得分:0)

您可以使用工会

  select min(Datetime) datetime, state 
  from my_table  
  group by state 
  union 
  select max(Datetime), state 
  from my_table  

答案 1 :(得分:0)

我们可以在这里尝试使用工会:

SELECT Id, State, MIN(Datetime) AS Datetime
FROM yourTable
GROUP BY Id, State
UNION ALL
SELECT Id, State, MAX(Datetime)
FROM yourTable
GROUP BY Id, State
ORDER BY Id, State, Datetime;

enter image description here

Demo

相关问题