number | person | timestamp
45 mike 2008-02-15 15:31:14
56 mike 2008-02-15 15:30:56
67 mike 2008-02-17 13:31:14
34 mike 2010-07-30 22:31:14
56 bob 2009-07-30 22:37:14
67 bob 2009-07-30 22:37:14
22 tom 2010-07-30 22:37:14
78 fred 2010-07-30 22:37:14
我喜欢一个可以为每个人添加号码的查询。然后只显示姓名总计,最近的条目是最后60分钟。困难似乎是,虽然它可以使用AND timestamp
> now() - INTERVAL 600,这会影响停止数字的全部总和。
我将从上面得到的结果
Mike 202
tom 22
fred 78
鲍勃不包括在内,他的最新入门不是最近的一年了!迈克虽然他有几个旧条目是有效的,因为他最近有一个条目 - 但关键,它仍然加起来他的完整'数字'而不仅仅是那些有时间段的。
继续在单个查询中绕过那个!并谢谢
和j。
答案 0 :(得分:1)
您需要HAVING
子句:
select name, sum(number), max(timestamp_column)
from table
group by name
HAVING max( timestamp_column) > now( ) - INTERVAL 600;
答案 1 :(得分:0)
基本上,你必须在主要标准选择中做一个子选择。在psuedo代码中它将是:
select person, total as (select sum(number) from table1 t2 where t2.person=t1.person)
from table1 t1 where timestamp > now( ) - INTERVAL 600
会爆炸,但你得到了主旨...... 吉姆