2009-05-17 8 views
1

En essayant de calculer une valeur efficace quadratique (racine quadratique moyenne) à partir d'un ensemble de données stocké dans MySQL. J'ai besoin de saisir les dernières 24 heures de points qui se produisent dans les 24 heures avant un décalage de ligne particulier. Par exemple, si je voulais calculer 24h rms pour l'identifiant de ligne 1250 qui a un horodatage du 7 juin 2007 à minuit, j'aurais besoin de tous les points qui se produisent entre le 6 juin 2007 à minuit.Comment sélectionner les 24 dernières heures de lignes à partir d'un décalage de ligne

Répondre

3

Du haut de ma tête ... (MYSQL)

declare @endTime datetime; 
select @endTime=timestamp from data where [email protected] 
select 
    * 
from 
    data 
where 
    timestamp<[email protected] and timestamp>ADDDATE(@endTime,INTERVAL -1 DAY) 

(T-SQL)

declare @endTime datetime2; 
select @endTime=timestamp from data where [email protected] 
select * from data where timestamp<[email protected] and timestamp>dateadd(d,-1,@endTime) 

Vous devrez peut-être ajuster le type datetime pour correspondre à vos données.

2

Vous pouvez utiliser les fonctions d'agrégation directement contre un certain ensemble:

select 
    sqrt(sum(pow(my_value,2))/count(*)) 
from 
    my_table 
where 
    my_date between '2007-06-06 00:00:00' and '2007-06-07 00:00:00' 
Questions connexes