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

lấy kết quả từ truy vấn

Bạn có thể sử dụng SUM/CASE hoặc (SUM/DECODE nếu bạn thích)

Select
   COUNT(*) TOTAL_RECORDS  ,
   SUM(case when status = 'PENDING' then 1 else 0 END) TOTAL_PENDING, 
   SUM(case when status = 'NOT_REQUIRED' then 1 else 0 END) TOTAL_NOT_REQUIRED, 
   SUM(case when status = 'ERROR' then 1 else 0 END) TOTAL_ERROR


FROM temp25

Xem nó hoạt động tại đây

Bạn cũng có thể sử dụng pivot nhưng việc lấy số đếm (*) hơi xấu một chút

WITH 
COUNTS AS(
select * 
from (
   select status
   from TEMP25 t
)
pivot 
(
   count(status)
   for status in ('PENDING' AS TOTAL_PENDING,
                  'NOT_REQUIRED' AS TOTAL_NOT_REQUIRED,
                  'ERROR' AS TOTAL_ERROR)
))


SELECT COUNT(*) total_records, 
       total_pending, 
       total_not_required, 
       total_error 
FROM   temp25, 
       counts 
GROUP  BY total_pending, 
          total_not_required, 
          total_error 

Phiên bản tổng hợp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi hex thành chuỗi

  2. Hàm HEXTORAW () hoạt động như thế nào? Thuật toán là gì?

  3. SQL Server 2016 trên Linux

  4. Lỗi khi thêm chế độ chờ

  5. thay thế cho listagg trong Oracle?