我有一张如下所示的表格:
DATE | HOSTNAME | MY_VALUE
-----------+----------+----------
2015-08-10 | host01 | 1
2015-08-10 | host02 | 3
2015-08-10 | host03 | 4
2015-08-11 | host01 | 7
2015-08-12 | host02 | 13
我想按最近日期计算MY_VALUE
每个不同项的最后一个值的总和。输出应为“ ”(4+7+13)。hostname
24
SELECT sum(MY_VALUE)
FROM my_table
答案1
我认为您可以使用这样的查询:
SELECT SUM(My_Value)
FROM Table1 t
WHERE t.`Date` = (
SELECT Max(ti.`Date`)
FROM Table1 ti
WHERE t.`HostName` = ti.`HostName`);
答案2
当您说最近的日期时,这意味着您只需要一条记录主机名。您可以使用行号分析函数。
select sum(myvalue),hostname
select hostname,date,myvalue,row_number() over (partition by hostname order by date) as n
from table )
where n=1
如果你仍然没有得到答复。请解释一下你的需求