2013-05-06 12 views
7

Ho un database sql con un campo temporale.come restituire la media di un campo di tempo sql

Il campo di tempo di esecuzione contiene 02:06:24, 00:01:12 ecc ...

sto cercando di restituire la media di questo campo nel HH: MM: SS usando;

SELECT AVG(runtime) 
FROM `result` 

Ciò restituisce 8312.2342729307 che ho pensato è stata la media in secondi tuttavia quando convertito in minuti questo non è corretto.

Sono in grado di restituire l'intervallo MIN e MAX nel formato corretto ma non è possibile ottenere l'AVG, come faccio?

In caso contrario, è comunque necessario selezionare l'elemento centrale da utilizzare come media mediana?

+0

Non è chiaro quale database in uso: solo MySQL? O anche un altro? – Jocelyn

+0

Non sono sicuro di essere onesto, è ospitato su http://www.numyspace.co.uk/phpmyadmin –

+0

Cosa pensi che dovrebbe essere la media delle due e delle cinque? Quale dovrebbe essere la * somma * delle due e delle cinque? –

risposta

2

Non è possibile utilizzare la funzione AVG() contro un DATETIME/ORA

sto scaccio DATETIME a decimale (18, 6), che sembra produrre un ragionevole (+ - pochi millisecondi) risultato preciso.

SELECT cast(CAST(AVG(CAST(runtime AS DECIMAL(18, 6))) AS DATETIME) as time) 
FROM dbo.result; 
+0

Restituisce una riga, tuttavia questo è NULL –

+0

I test rapidi suggeriscono che 'AVG()' tratta '01: 30: 00' come' 13000', anche in modalità rigorosa: -? Se qualcuno può trovare la pagina del manuale che spiega che dovrebbe pubblicarlo qui. –

3

Così, a titolo di esempio ...

SELECT SEC_TO_TIME((TIME_TO_SEC('02:06:24')+TIME_TO_SEC('00:01:12'))/2) x; 
+----------+ 
| x  | 
+----------+ 
| 01:03:48 | 
+----------+ 
+0

SELEZIONA SEC_TO_TIME ((TIME_TO_SEC ('22: 06: 24 ') + TIME_TO_SEC ('00: 01: 12'))/2) x; mi dà 11: 03: 48.0000 ... Qual è il risultato errato. Il risultato corretto dovrebbe essere 23: XX ... –

+0

@ApoorvaShah Il tuo è un problema diverso da quello originariamente chiesto. Anche XX non è un orario valido. – Strawberry

+0

sì xx significa qualche secondo ... non ho calcolato la media esatta. –

Problemi correlati