如果最新日期早于30天,请选择结果

时间:2015-07-23 08:53:28

标签: mysql

我有一个包含2个字段的MySQL表:id_typecreated_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

我应该如何正确构建它?

2 个答案:

答案 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)