Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Obracanie tabeli wraz z sumą wartości kolumny, gdy typ kolumny to nvarchar

conditional aggregation może być używany

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

Prezentacja Rextestera




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć pola zawierające znak TAB w SQL Server

  2. Domyślna sygnatura czasowa programu SQL Server?

  3. Dlaczego kolumna TEXT zwraca tylko 4096 bajtów?

  4. Nie można utworzyć wiersza o rozmiarze 8064, który jest większy niż dopuszczalny rozmiar wiersza 8060

  5. 2 sposoby sprawdzenia, czy dostęp do danych jest włączony w SQL Server (przykłady T-SQL)