Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lấy min () của cột đếm (*)

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 MINMAX 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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQLPlus ORA-01017 thông tin đăng nhập không hợp lệ khi chỉ định lược đồ

  2. Nhà tiên tri; giới hạn hàng cho mỗi giá trị cột

  3. Chuỗi kết nối Oracle với at sign @ in pasword

  4. Cách tìm Phiên bản thành phần EBS R12

  5. Các truy vấn hàng đầu về khóa chính trong Oracle với các ví dụ