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

Xoay vòng một bảng cùng với tổng giá trị cột khi loại cột là nvarchar

conditional aggregation có thể được sử dụng

with Orders( BookId, Status ) as
(
 select '123A','Perfect' union all
 select '123B','Restore' union all
 select '123C','Lost'    union all
 select '123D','Perfect' union all
 select '123A','Perfect' union all
 select '123B','Restore' union all
 select '123A','Lost'    union all
 select '123B','Restore'   
)    
select
    BookId,
    sum(1) as [Total],
    sum(case when Status='Perfect' then 1 else 0 end ) as [Perfect],
    sum(case when Status='Restore' then 1 else 0 end ) as [Restore],
    sum(case when Status='Lost' then 1 else 0 end ) as [Lost]    
from 
    [Orders]
group by BookId;

BookId  Total   Perfect Restore Lost
123A      3        2       0     1
123B      3        0       3     0
123C      1        0       0     1
123D      1        1       0     0

Rextester Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số lượng SQL để bao gồm các giá trị 0

  2. Thay thế giá trị null trong truy vấn sql pivot động

  3. Kết nối Genero với SQL Server

  4. Cách đổi tên bảng trong SQL Server

  5. Tại sao 1899-12-30 là ngày 0 trong Access / SQL Server thay vì 12/31?