Somme MySQL de colonne par nom d'hôte distinct et par date la plus récente


0

J'ai une table qui ressemble à ceci:

 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 

Je veux obtenir la somme du dernier MY_VALUEde chaque distinct hostnamepar la date la plus récente. La sortie devrait être ' 24' (4 + 7 + 13).

SELECT sum(MY_VALUE) 
FROM my_table  

Réponses:


0

Je pense que vous pouvez utiliser une requête comme celle-ci:

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

[Démo SQL Fiddle]


0

Lorsque vous dites la date la plus récente, cela signifie que vous ne voulez qu'un seul nom d'hôte d'enregistrement. Vous pouvez aller avec la fonction analytique numéro de ligne.

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

Si vous n'obtenez toujours pas de réponse. Pourriez-vous s'il vous plaît expliquer votre exigence


Votre requête comporte de nombreuses erreurs de syntaxe;).
ShA.t
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.