Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Memutar tabel bersama dengan jumlah nilai kolom saat tipe kolom adalah nvarchar

conditional aggregation mungkin digunakan

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

Demo Rextester




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan yang sama - rencana eksekusi yang berbeda

  2. Masukkan semua data datagridview ke database sekaligus

  3. SQL server 2005 kehilangan presisi numerik

  4. Mengubah susunan SQL Server menjadi case-sensitive dari case sensitive?

  5. Apakah T-SQL memiliki fungsi agregat untuk menggabungkan string?