从mytable
中选择*哪里 TrackDate
之间 DATE_SUB("2015-01-12 13:47:30", INTERVAL 7 DAY) 和 "2015-01-12 13:47:30"
我的表
**id-----------|-----keyword(varchar)----|--------trackdate(timestamp)**
1------------|--------a------------------------|-------2015-01-12 13:47:02
15------------|------ *NULL* ----------------------|-------2015-01-12 12:47:02
2------------|--------b------------------------|-------2015-01-12 10:47:02
3------------|--------c------------------------|--------2015-01-12 1:47:02
4------------|--------d------------------------|-------2015-01-10 13:47:02
5------------|--------e------------------------|-------2015-01-10 10:47:02
6------------|--------f------------------------|-------2015-01-10 1:47:02
7------------|--------g------------------------|--------2015-01-9 13:47:02
8------------|--------h------------------------|--------2015-01-9 10:47:02
9------------|--------i------------------------|--------2015-01-9 1:47:02
10------------|--------j-----------------------|--------2015-01-6 13:47:02
11------------|--------k-----------------------|--------2015-01-5 10:47:02
12------------|--------l-----------------------|--------2015-01-2 1:47:02
我的输出应该是:
1------------|--------a------------------------|-------2015-01-12 13:47:02
4------------|--------d------------------------|-------2015-01-10 13:47:02
7------------|--------g------------------------|--------2015-01-9 13:47:02
10------------|--------j-----------------------|--------2015-01-6 13:47:02
但是我得到了 2015-01-12 和 2015-01-6 之间的所有数据。 我想从输出中消除重复的日期记录,只需获取这些重复日期中最大的日期记录(就像我消除了 2015-01-12 的 id=2,3 并显示 id 1)。嗯>
最佳答案
将派生表与子查询一起使用
select * from mytable where Trackdate IN (
select max(date) from
(
SELECT * FROM mytable WHERE TrackDate between DATE_SUB("2015-01-12 13:47:30", INTERVAL 7 DAY) AND "2015-01- 13:47:30"
)tmp
group by date(trackdate)
)
关于mysql - 条件查询获取两个日期之间有间隔的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42022614/