表架构
create table test (id int(10) , stat varchar(20) , regdt datetime);
insert into test values
(10001,'ON', '2020-06-29 01:00:00'),
(10002,'ON', '2020-06-29 02:00:00'),
(10003,'ON', '2020-06-29 03:00:00'),
(10003,'OFF','2020-06-29 04:00:00'),
(10004,'ON', '2020-06-29 05:00:00'),
(10004,'OFF','2020-06-29 06:00:00'),
(10004,'ON', '2020-06-29 07:00:00');
我只想要在stat列中以“on”结尾的那些。 所以我想找到以“on”结尾的id
谢啦!
id stat regdt
10001 ON 2020-06-29T01:00:00Z
10002 ON 2020-06-29T02:00:00Z
10004 ON 2020-06-29T07:00:00Z
http://sqlfiddle.com/#!9/7 c0f90/3
SELECT test.*
FROM test
JOIN ( SELECT id, MAX(regdt) regdt
FROM test
GROUP BY id ) max_regdt USING (id, regdt)
WHERE test.stat = 'ON';
子查询max_regdt
获取每个ID的最后日期。 获取的值用于从源表的另一个副本中检索整行。
该查询假定不存在具有相同id
和regdt
的重复行-如果存在,则将返回所有重复行。