Jeg har ikke en orakelstation at teste på, men du burde være i stand til bare at pakke aggregatoren rundt om din SELECT
som en underforespørgsel/afledt tabel/inline-visning
Så det ville være (UTESTET!!)
SELECT
AVG(s.c)
, MIN(s.c)
, MAX(s.c)
, s.ID
FROM
--Note this is just your query
(select id, to_char(time), count(*) as c from vehicle_location group by id, to_char(time), min having id = 16) as s
GROUP BY s.ID
Her er noget at læse om det:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
EDIT: Selvom det normalt er en dårlig idé at vælge begge MIN
og MAX
i en enkelt forespørgsel.
EDIT2: Min/maks-problemet er relateret til, hvordan nogle RDBMS (inklusive oracle) håndterer aggregeringer på indekserede kolonner. Det påvirker muligvis ikke denne specifikke forespørgsel, men forudsætningen er, at det er nemt at bruge indekset til at finde enten MIN
eller MAX
men ikke begge på samme tid, fordi ethvert indeks muligvis ikke bruges effektivt.
Her er noget at læse om det:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html