我有一个包含2个字段的MySQL表:id_type
和created_at
有几行具有相同的id_type
和不同的时间戳。例如:
3 - 2015-06-10 12:01:20
1 - 2015-03-21 04:14:10
1 - 2015-03-17 04:14:10
0 - 2015-05-06 21:43:00
3 - 2015-05-13 19:34:32
3 - 2015-07-18 03:47:55
如果最新的相应id_type
超过30天(或换句话说,最后一次记录超过30天的id_type),我需要选择created_at
预期结果:
1
0
我试过了:
SELECT id_type FROM table WHERE MAX(created_at) < DATE_SUB(NOW(), INTERVAL 30 day)
这给了我错误:
invalid use of group function
我应该如何正确构建它?
答案 0 :(得分:1)
试试这个,
SELECT id_type FROM table_b WHERE created_at IN (Select MAX(created_at) from table_b where created_at < DATE_SUB(NOW(), INTERVAL 30 day));
答案 1 :(得分:0)
您可以使用:
select id_type from `table` where `created_at` >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)