【问题标题】:Count of data from one column into multiple columns with MySQL?使用MySQL将一列中的数据计数到多列?
【发布时间】:2017-01-17 03:46:02
【问题描述】:

我无法理解如何将不同的活动拆分和计数到单独的列中。这是开始表:

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

【问题讨论】:

  • 输出中的view和click列是否正确???
  • @Praveen 已修复,很抱歉造成混乱!

标签: mysql multiple-columns table-splitting


【解决方案1】:

您可以使用case statementsum 之类的,

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

【讨论】:

  • 非常感谢!很好的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多