Nemám žádnou věštcovskou stanici, na které bych mohl testovat, ale měli byste být schopni zabalit agregátor kolem vašeho SELECT
jako poddotaz/odvozená tabulka/inline zobrazení
Takže by to bylo (NEZKOUŠENÉ!!)
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
Zde je něco z toho:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
UPRAVIT: I když obvykle je to špatné nápad vybrat obě MIN
a MAX
v jediném dotazu.
EDIT2: Problém min/max souvisí s tím, jak některé RDBMS (včetně oracle) zpracovávají agregace na indexovaných sloupcích. Nemusí to mít vliv na tento konkrétní dotaz, ale předpokladem je, že je snadné použít index k nalezení MIN
nebo MAX
ale ne obojí současně, protože žádný index nemusí být použit efektivně.
Zde je něco k přečtení:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html