J'ai les attributs suivants dans ma base de données.Mysql requête pour obtenir 2 plus récent pour un numéro d'article donné
id, nom de périphérique, valeur, horodatage.
Pour une statistique donnée, je souhaite trouver les 2 horodatages les plus récents et les valeurs correspondantes pour chaque périphérique unique.
J'essaie des choses comme
Essai 1)
select statistic, devicename, value, timestamp
from X_STATSVALUE
where statistic=19
order by orgtime DESC limit 2;
Cela me donne les 2 premiers horodateurs, mais pas par appareil.
Trial 2)
select statistic, devicename, value, timestamp
from X_STATSVALUE as x
where x.statistic=241
and (select count(*)
from X_STATSVALUE as y
where y.statistic=x.statistic
and y.device=x.device
and y.timestamp > x.timestamp) <=1;
Mais qui ne fonctionne pas trop bien non plus ..
Fondamentalement, je veux que les 2 plus récentes horodatages avec des valeurs pour chaque dispositif, pour une statistique donnée .. toute aide est vraiment apprécié :)
Cela ne fonctionnera que dans MySQL. D'autres SGBDR vous diront que vous ne pouvez pas regrouper seulement une partie des déclarations sélectionnées et que vous devez regrouper par tous les quatre. – mat
Et la question concerne MySql –