Advertisement
SQL : faire un comptage horizontal en SQL

Tout le monde sait faire des comptages verticaux par rupture mais horizontal ? 

Voici un exemple :

avec en plus une rupture sur le code produit 

select code,
    sum(case VILCLI when 'LYON' then 1 else 0 end) as LYON,
    sum(case VILCLI when 'PARIS' then 1 else 0 end) as PARIS,
    sum(case when VILCLI not in ('LYON','PARIS')
                then 1 else 0 end) as DIVERS
from clients
group by code   
order by code    

 

CODE   LYON   PARIS    DIVERS    
  A1        2         0           3    
  B2        1         0           3    
  B3        0         2           1    

Remarque :

la limite c'est qu'on est obligé de connaître les ruptures, mais cela peut dépanner !