Нямам станция на Oracle, на която да тествам, но трябва да можете просто да обвиете агрегатора около вашия SELECT
като подзаявка/изведена таблица/вграден изглед
Така ще бъде (НЕТЕСТВАНО!!)
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
Ето малко четиво за това:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
РЕДАКТИРАНЕ: Въпреки че обикновено е лошо идея да изберете и двете MIN
и MAX
в една заявка.
РЕДАКТИРАНЕ 2: Проблемът с мин./макс. е свързан с това как някои RDBMS (включително oracle) обработват агрегации на индексирани колони. Може да не засегне тази конкретна заявка, но предпоставката е, че е лесно да се използва индексът за намиране на MIN
или MAX
но не и двата едновременно, защото всеки индекс може да не се използва ефективно.
Ето малко четиво за това:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html