Mysql数据透视表按多列分组查询

时间:2018-12-04 09:16:56

标签: mysql pivot

我有一个如下所示的MySQL表。

consulted_on (DATE)   consulted_by 
-----------------------------------
04/12/2018               Mr.Bob
04/12/2018               Mr.Jhon
04/12/2018               Mr.Bob
05/12/2018               Mr.Jhon
06/12/2018               Mr.Bob
06/12/2018               Mr.Jhon
07/12/2018               Mr.Bob

我想显示如下数据,是否可以得到如下输出?

consulted_on(DATE)  Mr.Bob   Mr.Jhon  
-------------------------------------
04/12/2018           2              1
05/12/2018           0              1
06/12/2018           1              1
07/12/2018           1              0

consulted_by列基本上包含动态值,在这种情况下,如何在mysql中编写数据透视查询?有人可以帮我吗?

非常感谢
-苏达珊

1 个答案:

答案 0 :(得分:0)

请使用以下查询:

SELECT
  consulted_on,  
  SUM(CASE WHEN (consulted_by='Mr.Bob') THEN 1 ELSE 0 END) AS Mr_Bob,
  SUM(CASE WHEN (consulted_by='Mr.Jhon') THEN 1 ELSE 0 END) AS Mr_Jhon,
FROM table_name
GROUP BY consulted_on