Soma da coluna MySQL por nome de host distinto e pela data mais recente

0

Eu tenho uma tabela assim:

 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 

Desejo obter a soma do último MY_VALUE de cada hostname distinto na data mais recente. A saída deve ser ' 24 ' (4 + 7 + 13).

SELECT sum(MY_VALUE) 
FROM my_table  
    
por linmod77x 15.08.2015 / 05:51

2 respostas

0

Acho que você pode usar uma consulta como esta:

SELECT SUM(My_Value)
FROM Table1 t
WHERE t.'Date' = (
  SELECT Max(ti.'Date')
  FROM Table1 ti
  WHERE t.'HostName' = ti.'HostName');

[Demo do SQL Fiddle]

    
por 15.08.2015 / 06:06
0

Quando você diz a data mais recente, significa que você deseja apenas um registro Hostname. Você pode ir com função analítica de número de linha.

select sum(myvalue),hostname 
select hostname,date,myvalue,row_number() over (partition by hostname order by date) as n 
from table ) 
where n=1

Se você ainda não tiver uma resposta. Você poderia por favor explicar sua exigência

    
por 15.08.2015 / 13:36

Tags