Je ne suis pas sûr que cela soit possible dans une seule requête, mais j'essaie d'obtenir ce qui suit avec MySQL et je n'ai pas encore trouvé de solution.Combiner SUM et AVG avec GROUP BY dans MySQL
J'ai une table qui est structuré un peu comme ceci:
ID LOG_VALUE LOG_TIME
1 5000 19:05:42
2 6205 19:05:45
3 1000 19:05:40
1 5000 19:05:52
2 6403 19:05:55
3 1500 19:05:50
1 5000 19:06:02
2 6403 19:06:05
3 1500 19:06:00
Les lignes sont insérées dans ce tableau de journal à intervalles réguliers à savoir toutes les 10 secondes. Je voudrais interroger les enregistrements pour calculer une valeur log_logue moyenne combinée pour chaque minute. Le problème que j'ai, c'est que je ne suis pas sûr de savoir comment calculer une moyenne par ID pour chaque minute, avec la somme des moyennes pour une minute donnée, seulement l'une ou l'autre.
En termes de base que je suis désireux de réaliser ce processus:
- Trouver la moyenne de tous les journaux pour ID 1 à 19:05
- Trouvez la moyenne de tous les journaux pour ID 2 à 19h05
- Trouvez la moyenne de tous les journaux pour ID 3 19:05
- Ajouter les moyennes ensemble pour donner un total de 19:05
- Faites la même chose pour 19h06
Le SQL ci-dessous ne fait pas ce que je veux mais je l'ai inclus pour aider à supporter le problème.
SELECT ROUND(AVG(log_value)) AS average_value, EXTRACT(HOUR_MINUTE FROM log_time)
FROM (`logs`)
GROUP BY MINUTE(log_time), id
ORDER BY log_time DESC
Merci pour toute aide que vous pouvez fournir.
Ceci est une requête facile, voudrais avoir MySQL ici pour tester vite fait, il devrait être quelque chose comme: id select, heure + ':' + minute, avg (log_value) de journaux groupe par id, heure + » : '+ minute – BlackTigerX