2013-06-29 15 views
10

Ho una tabella come di seguitoSQL Countif funzione

Type of Station | Broadcast Management 
----------------+------------------------- 
Full Power  | Sinclair Broadcast Group 
Full Power  | Sinclair Broadcast Group 
LPTV cable  | Sinclair Broadcast Group 
LPTV no cable | Sinclair Broadcast Group 

Ora voglio eseguire una query che porterà risultato è simile sotto

Broadcast Management  | Full Power | LPTV cable | LPTV no cable 
---------------------------+------------+------------+-------------- 
Sinclair Broadcast Group | 2   |  1  | 1 

Qualcuno può please help me come scrivere questa query

risposta

21

Non esiste un singolo SUMIF o COUNTIF.

Ma avete SUM o COUNT ed un IF utilizzando CASE ...

SELECT 
    [Broadcast Management], 
    SUM(CASE WHEN [Type of Station] = 'Full Power' THEN 1 ELSE 0 END) AS [Full Power], 
    SUM(CASE WHEN [Type of Station] = 'LPTV Cable' THEN 1 ELSE 0 END) AS [LPTV Cable], 
    SUM(CASE WHEN [Type of Station] = 'LPTV No Cable' THEN 1 ELSE 0 END) AS [LPTV No Cable] 
FROM 
    yourTable 
GROUP BY 
    [Broadcast Management] 

Per conta, si può fare la ELSE ritorno NULL come il conte di 1, 2, 4, NULL è 3.

+0

eccellente. grazie @ MatBailie –