2016-09-09 2 views
4

У меня возникли проблемы с пониманием того, как разделить и подсчитать разные действия в отдельных столбцах. Это начало таблицы:Количество данных из одного столбца в несколько столбцов с MySQL?

+------------+---------+ 
| 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

Is t он видит и нажимает колонку правильно в выходе ??? – Praveen

+0

@Praveen Исправлено, извините за путаницу! –

ответ

5

Вы можете использовать case statement и sum как,

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` 

Выход is

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

Хороший ответ ... !!! –

+0

Большое вам спасибо! Отличный ответ! –