Saya tidak memiliki stasiun Oracle untuk diuji tetapi Anda seharusnya bisa membungkus agregator di sekitar SELECT
Anda sebagai subquery/tabel turunan/tampilan sebaris
Jadi itu akan menjadi (TIDAK DIUJI!!)
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
Berikut beberapa bacaannya:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
EDIT: Meskipun biasanya itu buruk ide untuk memilih keduanya MIN
dan MAX
dalam satu kueri.
EDIT2: Masalah min/maks terkait dengan bagaimana beberapa RDBMS (termasuk Oracle) menangani agregasi pada kolom yang diindeks. Ini mungkin tidak memengaruhi kueri khusus ini, tetapi premisnya adalah mudah menggunakan indeks untuk menemukan MIN
atau MAX
tetapi tidak keduanya pada saat yang sama karena indeks apa pun tidak dapat digunakan secara efektif.
Inilah bacaannya:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html