On 2012-12-30 16:24, Hugues Levasseur wrote:
> En une seule requête :
>
> SelectT t1.ts as allumage, t2.ts as extinction, timediff(t2.ts,
> t1.ts) as durée
> From test t1, test t2
> Where t1.object = "heating_cmd_sdb_rdc"
> and t1.value = "on"
> and t2.object = "heating_cmd_sdb_rdc"
> and t2.value = "off"
> and t1.ts < t2.ts
>
> Hugues
ca ne fonctionne plus des que tu as plusieurs événements :
Select t1.ts as allumage, t2.ts as extinction, (t2.ts - t1.ts) as
durée
From test t1, test t2
Where t1.object = 'heating_cmd_sdb_rdc'
and t1.value = 'on'
and t2.object = 'heating_cmd_sdb_rdc'
and t2.value = 'off'
and t1.ts < t2.ts;
allumage | extinction | durée
---------------------+---------------------+----------
2012-12-29 07:29:40 | 2012-12-29 08:00:00 | 00:30:20
2012-12-29 07:29:40 | 2012-12-29 08:48:55 | 01:19:15
2012-12-29 08:00:30 | 2012-12-29 08:48:55 | 00:48:25
(3 rows)
>
> Le 30/12/2012 11:16, sxpert a écrit :
>> On 2012-12-30 09:21, Frédéric wrote:
>>> On samedi 29 décembre 2012, sxpert wrote:
>>>
>>>> bon... ca se fait avec un vrai sgbdr, je sais pas avec mysql ;)
>>>> *hint*postgres*hint*
>>>
>>> Puissant ! Faut que je creuse les view... Je devrais pouvoir faire
>>> le
>>> calcul direct, avec ça.
>>>
>>> Merci !
>>
>> le secret est dans le "distinct on (on_evt.ts)" ;-)
>>