Hallo,

Ik heb een database die er als volgt uitziet:

| timestamp | timestamp | No | CURRENT_TIMESTAMP
| id | int(11) | No |
| value | int(11) | No |
| dcp | int(11) | No |
| dcc | float | No |
| efficiency | float | No |
| acf | int(11) | No |
| acv | float | No |
| temp | float | No |
| status | int(11) | No |


En de data die er zo uitziet:

|2016-01-08 08:34:24|110134878|889901|0|0.05|0|49|55|2|1
|2016-01-08 08:34:59|110134878|889961|0|0.05|0|51|55|2|1
|2016-01-08 08:35:23|110048316|643076|0|0.05|0|49|55|1|1


Wat ik graag zou willen hebben is dat hij de value data bij elkaar opteld van de ID's die hetzelfde zijn.
Bedoelend dat we in de dummy data hierboven als uitkomst:

|2016-01-08|110134878|889901|0|0.05|0|100|110|4|2
|2016-01-08|110048316|643076|0|0.05|0|49|55|1|1

willen hebben.

Maar wat hij heeft opgeteld met elkaar, weer verplaatst naar een andere table en de oude data dan weer verwijderd. (Dit omdat er veel word gelogt en we beperkt zijn op gelimiteerde schijfruimte).




is wat we op het moment hebben, maar hij pakt dan wel alle 3 de ID's apart, maar het optellen van de value blijft van alle ID's bij elkaar.
Het lijkt me dat de SELECT niet doet wat je wilt, want je sommeert value, terwijl je volgens mij de andere wilt optellen. Tenminste dat lijkt zo uit je voorbeeld.

SELECT id, SUM(efficiency), SUM(acf), SUM(acv), SUM(status) FROM enecsys_day GROUP BY id


maar dan heb je nog geen waarde voor value, dcp, dcc.
sorry, ik had de oudere code gebruikt inplaats van de nieuwe die we hadden.
Overigens hebben we de nieuwe wel zo kunnen maken dat het de 3 ID's maar 1 keer pakt en van alle id's de wh(value).
Maar dan moet deze data, weer worden insert naar een andere table.


Kijk eens naar INSERT INTO tabel (kol1, kol2, kol3, ...) SELECT kol1, kol2, kol3 FROM input WHERE ...

En de kol1, 2 of 3 kunnen ook je SUM zijn.
Ik wist niet eens dat deze bestond, kwam het ook niet tegen toen ik aan het zoeken was naar een oplossen.
Alvast bedankt,

Reageren