faire une somme par heure,jour,mois... - SQL/NoSQL - Programmation
Marsh Posté le 17-10-2012 à 08:58:41
Si on parle bien de SQL, ca doit donner quelque chose dans ce style:
Code :
|
Tu peux éventuellement filtrer pour avoir un jour précis avec un "where year = xx and month = yy and day = zz"
Pour le récapitulatif par jour c'est la meme chose, en retirant tous les "day"
Marsh Posté le 17-10-2012 à 09:01:37
Code :
|
Si tu veux faire un group par jour tu fais la meme chose en enlevant "hour".
J'ai pas mis la colonne datetime parceque c'est plus du chipotage particulier a ton SGBD qu'un probleme de group
Edit: Burned
Marsh Posté le 17-10-2012 à 09:13:13
Bonjour !
A priori, une requête du genre
select year, month, day, hour, 0, sum(Kw), TO_CHAR(year) || '-' || TO_CHAR(month, '99') || '-' || TO_CHAR(day, '99') || ' ' || TO_CHAR(hour, '99') || ':00' from table group by year, month, day, hour; |
devrait marcher pour la première requête et, de la même façon,
select year, month, day, 0, 0, sum(Kw), TO_CHAR(year) || '-' || TO_CHAR(month, '99') || '-' || TO_CHAR(day, '99') || ' 00:00' from table group by year, month, day; |
Notes :
* Certaines fonctions sont peut-être spécifiques à Oracle, comme le || pour concaténer deux chaînes ...
* Je n'ai pas de Bd sous la main pour tester, donc les erreurs de syntaxe sont probables, mais l'idée est là !!!
Bonne continuation !
Marsh Posté le 17-10-2012 à 09:56:23
Reply
Marsh Posté le 17-10-2012 à 08:08:15
bonjour à tous,
pour mes besoins personels j'ai un appareil qui surveille ma puissance en kw au compteur de la maison et qui enregistre un point par minute dans une table.
year, month, day, hour, min, Kw, datetime
2012, 8, 10, 12, 0, 0.235, "2012-08-10 12:00"
2012, 8, 10, 12, 1, 0.255, "2012-08-10 12:01"
2012, 8, 10, 12, 2, 0.335, "2012-08-10 12:02"
....
2012, 8, 10, 12, 59, 0.236, "2012-08-10 12:59"
2012, 8, 10, 13, 0, 0.241, "2012-08-10 13:00"
....
j'ai donc 60 points par heure et je cherche a regrouper ces points par heure pour un affichage plus aisé et pour alléger le fichier car je n'ai pas besoin d'une telle précision
donc j’essaie d'obtenir un résultat comme ça :
2012,8,10,12,0,1.955,"2012-08-10 12:00"
2012,8,10,13,0,3.435,"2012-08-10 13:00"
2012,8,10,14,0,2.265,"2012-08-10 14:00"
2012,8,10,0,0,10.955,"2012-08-10 00:00"
2012,8,11,0,0,30.435,"2012-08-11 00:00"
2012,8,12,0,0,20.265,"2012-08-12 00:00"
...
merci de votre aide
---------------
Mes ventes vers Grenoble & Gresivaudan