Jag har ingen orakelstation att testa på men du borde kunna linda aggregatorn runt din SELECT
som en underfråga/härledd tabell/inbäddad vy
Så det skulle vara (OTESTAD!!)
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
Här är lite läsning om det:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
EDIT: Även om det normalt är en dålig idé att välja båda MIN
och MAX
i en enda fråga.
EDIT2: Min/max-problemet är relaterat till hur vissa RDBMS (inklusive oracle) hanterar aggregering på indexerade kolumner. Det kanske inte påverkar just den här frågan men förutsättningen är att det är lätt att använda indexet för att hitta antingen MIN
eller MAX
men inte båda samtidigt eftersom alla index kanske inte används effektivt.
Här är lite läsning om det:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html