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

Các cụm đếm SQL Oracle

Sử dụng các hàm LEAD và LAG trong ORACLE, bạn có thể tạo các truy vấn sau:

1.Số lần tắt máy:

WITH IntTable AS
( SELECT * FROM
  (
   SELECT dt b_date,value,LEAD(dt) OVER (ORDER BY dt) e_date  FROM
     (
        select "Date" dt,"Value" value,
               LAG("Value") OVER (ORDER BY "Date") pvalue,
               LEAD("Value") OVER (ORDER BY "Date") nvalue
        from T
     ) T1
     WHERE pvalue is NULL or value<>pvalue or nvalue is NULL 
   )
WHERE E_DATE is NOT NULL
)
SELECT COUNT(*) FROM IntTable where value = 0 

Bản trình diễn SQLFiddle

2.Period Giữa mỗi lần ngừng hoạt động

WITH IntTable AS
( SELECT * FROM
  (
   SELECT dt b_date,value,LEAD(dt) OVER (ORDER BY dt) e_date  FROM
     (
        select "Date" dt,"Value" value,
               LAG("Value") OVER (ORDER BY "Date") pvalue,
               LEAD("Value") OVER (ORDER BY "Date") nvalue
        from T
     ) T1
     WHERE pvalue is NULL or value<>pvalue or nvalue is NULL 
   )
WHERE E_DATE is NOT NULL
)
SELECT b_date,e_date, (e_date-b_date) * 60 * 24 FROM IntTable where value = 1 

Bản trình diễn SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn từng bước để cài đặt hộp ảo Oracle

  2. Cách tránh thay thế biến trong Oracle SQL Developer bằng 'trinidad &tobago'

  3. Tích hợp ServiceNow với Oracle Identity Cloud Service (IDCS)

  4. Tính tổng các cột có giá trị null trong oracle

  5. Hiểu đầy đủ về PDO ATTR_PERSISTENT