Tôi không có trạm oracle để kiểm tra nhưng bạn có thể chỉ cần bọc trình tổng hợp xung quanh SELECT
của mình dưới dạng truy vấn con / bảng dẫn xuất / chế độ xem nội tuyến
Vì vậy, nó sẽ là (UNTESTED !!)
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
Đây là một số bài đọc về nó:
http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/
CHỈNH SỬA: Mặc dù bình thường nó là một tệ hại ý tưởng để chọn cả hai MIN
và MAX
trong một truy vấn duy nhất.
EDIT2: Vấn đề tối thiểu / tối đa liên quan đến cách một số RDBMS (bao gồm cả oracle) xử lý tổng hợp trên các cột được lập chỉ mục. Nó có thể không ảnh hưởng đến truy vấn cụ thể này nhưng tiền đề là có thể dễ dàng sử dụng chỉ mục để tìm MIN
hoặc MAX
nhưng không phải cả hai cùng một lúc vì bất kỳ chỉ mục nào có thể không được sử dụng hiệu quả.
Đây là một số bài đọc về nó:
http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html