2016-09-09 14 views
4

異なるアクティビティを分割して別々の列に数える方法を理解できない。これは、最初のテーブルです:MySQLを使用して1つの列から複数の列にデータを数えますか?

+------------+---------+ 
| CustomerID |Activity | 
+------------+---------+ 
|   1 | Click | 
|   1 | View | 
|   1 | Inquiry | 
|   2 | Click | 
|   2 | View | 
|   3 | Click | 
|   3 | Click | 
+------------+---------+ 

私はこれにそれを変換できるようにしたいと思います:

+------------+------+-------+---------+ 
| CustomerID | View | Click | Inquiry | 
+------------+------+-------+---------+ 
|   1 | 1 |  1 |  1 | 
|   2 | 1 |  1 |  0 | 
|   3 | 0 |  2 |  0 | 
+------------+------+-------+---------+ 
+0

です彼は見て、列をクリックして出力で正しいですか? – Praveen

+0

@Praveen修正済み、混乱して申し訳ありません! –

答えて

5

あなたは出力は、同じよう

select 
    `CustomerID`, 
    sum(case when `Activity` = 'View' then 1 else 0 end) `View`, 
    sum(case when `Activity` = 'Click' then 1 else 0 end) `Click`, 
    sum(case when `Activity` = 'Inquiry' then 1 else 0 end) `Inquiry` 
from `tbl` 
group by `CustomerID` 
order by `CustomerID` 

case statementsumを使用することができますは

CustomerID View Click Inquiry 
1    1  1  1 
2    1  1  0 
3    0  2  0 
+0

Nice Answer ... !!! –

+0

ありがとう!素晴らしい答え! –

関連する問題