我有一张名为temp的表。列是id,telco,shortcode,hotkey。
id telco shortcode hotkey
1 asdf 123 ib
2 gra 123 sb
3 cc 123 sb
4 bl 123 ibb
使用mysql查询我希望输出计数(短代码)组由telco在哪里热键ib短代码123和 count(shortcode)group by telco where hotkey sb shortcode 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
但我不想要这个
答案 0 :(得分: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可以选择使用pivot语法
答案 1 :(得分: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.