我有一张日期和Etotalday的表。
我想要选择的是过去7天的最后值。 我寻找的许多解决方案都给出了一天的最高值,它与上一个值并不总是相同。
在我的情况下,表是使用值构建的,并且日期以前一天的最高值开始,并且在大约06.00处添加新值。
是否有人可以给我一个提示如何做到这一点? thnks
像重复的问题一样,但是我希望最后一个值不是最高值,而不是最大值。
答案 0 :(得分:0)
您可以使用order by
和limit
select t.*
from PacData t
where date >= now() - interval 7 day
order by date;
limit 1;
如果您想要返回过去七天每个的最后一个值(这可能是问题的意图),那么这里有一种方法:
select t.*
from PacData t
where not exists (select 1
from PacData t2
where date(t2.date) = date(t.date) and t2.date > t.date
);
这说:“从表格中获取所有记录,其中同一日期没有记录,日期时间列中的值更大”。顺便说一下,date
是存储日期和时间的列的糟糕名称。