J'ai une série de horodatées données on/off dans un tableau, ce qui représente on/off états, ou le point où un état « commence »requête MySQL pour évaluer la durée totale de quelque chose est « sur »
00:00:00 0
04:00:00 1
08:00:00 0
09:00:00 1
15:00:00 0
20:00:00 1
23:59:59 0
J'ai besoin de calculer la durée totale de (disons) l'état ON sur une période de 24h.
Dans cet exemple simplifié, la durée totale = 1 est (04: 00: 00-> 08:00:00, 09: 00: 00-> 15:00:00, 20: 00: 00-> 23: 59:59 ie 13:59:59 environ 14h
Je ne peux pas déterminer si cela peut être fait dans SQL seul, ou si l'infrastructure sous-jacente que j'utilise (django) devrait le faire en fonction des données retournées Je préférerais évidemment que la base de données fasse le gros du travail si possible, car il se peut que nous devions aussi utiliser le SQL dans notre paquetage de statistiques séparé
Je ne sais pas si je peux faire des opérations sur (disons) élément précédent ou suivant dans la sélection, je suis un utilisateur SQL confiant, mais ne peut pas voir par où commencer pour cela ou l'approche généralisée, des idées?
Je voudrais vraiment cela dans une seule requête, ou une autre façon intelligente de calculer ce qui me manque!
tout d'abord, je desi gn la table de sorte que les heures d'état ON et OFF sont sur la même ligne sur des colonnes différentes, alors cette tâche serait triviale. Si c'est impossible pour vous, alors vous avez beaucoup de piratage pour le faire :) –