Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Завъртане на таблица заедно със сумата на стойността на колона, когато типът на колоната е nvarchar

conditional aggregation може да се използва

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо получавам тези различни резултати от две SQL заявки?

  2. Как да дешифрирам парола от SQL сървър?

  3. 7645 Нулев или празен предикат на пълен текст

  4. SQL взема само числовите стойности от varchar

  5. Как да инсталирате sqlcmd &bcp на Ubuntu