mysql - Mysql 数据透视表

标签 mysql join pivot

我有一张 table :

<表类=“s-表”> <标题> ID PROJECT_ID 月 MEMBER_ID <正文> 1 1 1 1 2 1 1 2 3 1 2 1 4 1 2 2 5 1 3 1 6 2 1 3 7 2 2 3 8 2 3 2 7 2 3 3

我想创建一个像这样的表:

<表类=“s-表”> <标题> PROJECT_ID 标题 MONTH_1 MONTH_2 MONTH_3 <正文> 1 标题1 2 2 1 2 标题2 1 1 2

每个月我都有成员(member)总数。我怎样才能实现它?

谢谢!

最佳答案

@Arth 的更简单回答

select project_id,
         CONCAT('title', project_id) title,
         SUM(month=1) month_1,
         SUM(month=2) month_2,
         SUM(month=3) month_3
    from table1 test
group by project_id;

<强> Fiddle

select
    `PROJECT_ID`,Title,
    coalesce(count(`MONTH_1`),0) as `MONTH_1`,
    coalesce(count(`MONTH_2`),0) as `MONTH_2`,
    coalesce(count(`MONTH_3`),0) as `MONTH_3` 
  from
(select
    `PROJECT_ID`, concat('Title', `PROJECT_ID`) as Title,
    case when `MONTH` = 1 then `MEMBER_ID` end as `MONTH_1`,
    case when `MONTH` = 2 then `MEMBER_ID` end as `MONTH_2`,
    case when `MONTH` = 3 then `MEMBER_ID` end as `MONTH_3`
  from Table1) test
  group by PROJECT_ID;

<强> fiddle

关于mysql - Mysql 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324963/

相关文章:

mysql - SQL语句编写的问题

mysql - 选择从 1 列计数到 2 列

mysql - 如果日期 > '9999-12-31 23:59:59.4',则日期时间字段溢出

MySQL 存储过程错误 1146

php - 无法用另一个表替换一个表的列

r - 无法访问函数内部的pivot_wider新创建的列

mysql - 在 mysql 的主查询中使用子查询返回 2 列

sql - 在 POSTGRES 中高效的 SQL 表连接或查询?如何以及做什么?

mysql - 查看 mysql 请求是否为 Null、Empty set 或其中包含内容

php - 按价格排序并排序订单号 opencart