2011-10-10 31 views
1

我有一個名爲temp的表。列是ID,電話公司,簡碼,熱鍵。group by同列其中多個條件使用相同的列輸入

id telco shortcode hotkey 
1 asdf 123  ib 
2 gra  123  sb 
3 cc  123  sb 
4 bl  123  ibb 

使用MySQL查詢我想輸出計數(短碼)組由電信其中熱鍵IB短碼123和 計數(短碼)組由電信其中如果我使用熱鍵SB短碼123

telco ib   sb 
asdf  1   0 
gra  0   1 
cc  0   1 
bl  1   0 

的下面的查詢

SELECT COUNT(`shortcode`) WHERE `hotkey` = 'ib' AND `shortcode` = 123 
SELECT COUNT(`shortcode`) WHERE `hotkey` = 'sb' AND `shortcode` = 123 

然後我通過以下方式走出

telco ib   

asdf  1   
gra  0   
cc  0   
bl  1  

telco sb 

asdf  1   
gra  0   
cc  0   
bl  1 

,但我不希望這個

回答

1

要使用和情況類似

Select 
     Telco, 
     Sum ( Case when hotkey = 'ib' then 1 else 0 end) as ib, 
     Sum ( Case when hotkey = 'sb' then 1 else 0 end) as sb 
From 
     Yourtable 
Group By 
    Telco 

注意當前的Oracle版本的SQL SERVER必須使用樞軸語法

+0

給出錯誤功能pushpull.sum不存在 – salma

+0

我寫「Then」時寫了「Theb」。我解決了這個問題,但你得到的錯誤很奇怪。我不確定是什麼原因造成的。也許你應該確保一切都逃脫,並開始只有一個SUM/CASE語句 –

+0

謝謝老闆的工作。很多謝謝 – salma

0

你很可能它已經,只需要拋出SELECT中,不要擔心GROUP BY位。

SELECT COUNT(`shortcode`) WHERE `hotkey` = 'ib' AND `shortcode` = 123 
SELECT COUNT(`shortcode`) WHERE `hotkey` = 'sb' AND `shortcode` = 123 

首先會給你多少行的熱鍵爲「IB」和簡碼爲123,第二個用熱鍵爲「SB」和簡碼爲123

+0

我知道它的選項,但如何顯示輸出需要我的格式。我想寫上面的格式輸出的MySQL查詢,輸出 – salma

+0

可能要澄清,在問題中。而不是COUNT(短代碼),您可以將其更改爲選擇telco,然後循環並顯示每個查詢。 – jprofitt

+0

顯示每個查詢然後電信節目每次,像下面電信IB ASDF 1 GRA 0 CC 0 BL 1和電信SB ASDF 0, GRA 1,CC 1 B1 0,但我想只顯示一個電信名爲每個查詢。 – salma

相關問題