从Mysql数据库中找到下面的数据,根据这个数据,当我用手机号码统计状态时,我需要将“状态”显示为行的标题,并且“计数”应该显示在状态下方。
**cust_mob_no status**
918072740683 unattended
918072740683 closed
918072740683 NotApplicable
918072740683 Assigned
918072740683 NotApplicable
918072740683 open
918072740683 open
如何显示如下所示的数据?
unattended closed NotApplicable Assigned open
1 1 2 1 2
最佳答案
你可以像这样使用选择大小写
SELECT
mobileNumber,
SUM(CASE WHEN (statusName='unattended') THEN 1 ELSE 0 END) AS unattended,
SUM(CASE WHEN (statusName='closed' ) THEN 1 ELSE 0 END) AS closed,
SUM(CASE WHEN (statusName='NotApplicable') THEN 1 ELSE 0 END) AS NotApplicable,
SUM(CASE WHEN (statusName='Assigned') THEN 1 ELSE 0 END) AS Assigned
FROM
MyTable
GROUP BY
mobileNumber
您可以使用数据透视表。示例查询
SELECT [unattended], [closed],[NotApplicable],[Assigned],[open] FROM
(SELECT [mobileNumber],[status] FROM MyTable )Tab1
PIVOT
(
COUNT([mobileNumber]) FOR status IN ([unattended], [closed],[NotApplicable],
[Assigned],[open])) AS Tab2
关于mysql - 如何将状态列中的内容显示为数据库中的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036706/