Подсчет данных из одного столбца в несколько столбцов с 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 |
+------------+------+-------+---------+

1 ответ

Решение

Ты можешь использовать 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`

Выход

CustomerID  View    Click   Inquiry
1             1     1       1
2             1     1       0
3             0     2       0
Другие вопросы по тегам