Hmm, ik zit nu al een tijdje te klooien met een bepaalde query. Voor mijn weerstation ben ik allemaal grafiekjes aan het toveren, tot nu toe zijn de meeste grafieken allemaal gelukt (zoals gemiddelde temperatuur per week, of de temperatuur per uur, etc).
Echter, is er een query die ik graag werkend zou willen hebben. Een query die het verschil tussen de luchtdruk berekend, en kijkt of er in dezelfde interval (een dag) ook regen gevallen is. Ik kom er simpelweg niet uit. Heb al meerdere kerende een hangende mysqld-nt gehad, blijkbaar omdat m'n query niet zo leuk gevonden werd
.
Ik heb dus een tabel 'weather' waar op dit moment de relevante velden zijn:
- timestamp
- rain_1h (is echter totale regen ooit gevallen, cumulatief)
- rel_pressure de luchtdruk.
Ik heb nu al iets wat semi goed is,
(de limit is om alles fatsoenlijk te houden, er zijn namelijk al heel veel records)
Dit geeft echter:
Zoals je ziet blijft de tweede datum op 13:30, de eerste tijd gaat wel gewoon in 10 minuten. Echter moeten ze beide gewoon een (evt. halve) dag zijn, ipv. 10 minuten interval.
ZO nu en dan probeer ook een "GROUP BY date_format(a.timestamp,'%j %Y')" om op dag/jaar te groupen, om een record/dag te krijgen , maar elke keer moet ik mysql platgooien omdat ie blijft hangen
Misschien is er hier iemand die meteen de juiste oplossing weet? Ik kom er echt even niet meer uit...
Echter, is er een query die ik graag werkend zou willen hebben. Een query die het verschil tussen de luchtdruk berekend, en kijkt of er in dezelfde interval (een dag) ook regen gevallen is. Ik kom er simpelweg niet uit. Heb al meerdere kerende een hangende mysqld-nt gehad, blijkbaar omdat m'n query niet zo leuk gevonden werd
Ik heb dus een tabel 'weather' waar op dit moment de relevante velden zijn:
- timestamp
- rain_1h (is echter totale regen ooit gevallen, cumulatief)
- rel_pressure de luchtdruk.
Ik heb nu al iets wat semi goed is,
code:
1
2
3
4
5
6
7
8
9
| SELECT a.timestamp AS "Date 1", a.rel_pressure AS "Pressure 1", a.rain_1h AS "Rain A", b.timestamp AS "Date 2", b.rel_pressure AS "Pressure 2", b.rain_1h AS "Rain B", b.rain_1h - a.rain_1h AS Difference FROM weather AS a INNER JOIN weather AS b ON datediff( a.timestamp, b.timestamp ) =1 LIMIT 0 , 300 |
(de limit is om alles fatsoenlijk te houden, er zijn namelijk al heel veel records)
Dit geeft echter:
code:
1
2
3
4
5
6
7
8
| Date 1 Pressure 1 Rain A Date 2 Pressure 2 Rain B Difference 2004-04-26 00:00:00 1011.0 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 00:10:00 1011.1 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 00:20:00 1010.9 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 00:30:00 1010.8 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 00:40:00 1010.8 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 00:50:00 1010.8 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 2004-04-26 01:00:00 1010.8 13.4 2004-04-25 13:30:00 1012.8 13.4 0.0 |
Zoals je ziet blijft de tweede datum op 13:30, de eerste tijd gaat wel gewoon in 10 minuten. Echter moeten ze beide gewoon een (evt. halve) dag zijn, ipv. 10 minuten interval.
ZO nu en dan probeer ook een "GROUP BY date_format(a.timestamp,'%j %Y')" om op dag/jaar te groupen, om een record/dag te krijgen , maar elke keer moet ik mysql platgooien omdat ie blijft hangen
Misschien is er hier iemand die meteen de juiste oplossing weet? Ik kom er echt even niet meer uit...
[ Voor 4% gewijzigd door Sponge op 04-07-2004 14:16 . Reden: Layout verpest door query. ]