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

Truy vấn SQL trong Oracle để tóm tắt số liệu thống kê, sử dụng GROUP BY

select batch 
,      count(case when status=1 then 1 end) status1
,      count(case when status=2 then 1 end) status2
,      count(case when status=3 then 1 end) status3
from   table
group by batch;

Đây thường được gọi là truy vấn "pivot" và tôi đã viết một bài viết về cách tạo động các truy vấn này trên blog của tôi .

Phiên bản sử dụng DECODE (dành riêng cho Oracle nhưng ít dài dòng hơn):

select batch 
,      count(decode(status,1,1)) status1
,      count(decode(status,2,1)) status2
,      count(decode(status,3,1)) status3
from   table
group by batch;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thoát khỏi cột LOB trống nhưng rất lớn?

  2. Sử dụng Oracle:Tôi có thể sử dụng biến được tạo 'động' trong mệnh đề xoay không?

  3. Truy vấn được đặt tên, Truy vấn gốc hoặc API tiêu chí

  4. Xuất cơ sở dữ liệu oracle sang tệp sql?

  5. LongOpsWatcher trong SQL Dev