MYSQL-将状态输入显示为自己的列

MYSQL-将状态输入显示为自己的列,mysql,Mysql,我在编写SQL查询以将行的状态显示为自己的列时遇到问题,如图所示 我正在考虑使用别名作为状态: 选择“表A.Date”、“表A.Status”作为。。。来自表A 但这并不能解决如何将每个状态类型显示为它们自己的列和数值的问题 有人能指出怎么做吗?试试这个。我使用CASE语句根据给定的状态类型有条件地将状态计数为一 SELECT Date, SUM(CASE WHEN Status='Pending' THEN 1 ELSE 0 END)Pending, SU

我在编写SQL查询以将行的状态显示为自己的列时遇到问题,如图所示

我正在考虑使用别名作为状态:

选择“表A.Date”、“表A.Status”作为。。。来自表A

但这并不能解决如何将每个状态类型显示为它们自己的列和数值的问题

有人能指出怎么做吗?

试试这个。我使用CASE语句根据给定的状态类型有条件地将状态计数为一

SELECT 
      Date,
      SUM(CASE WHEN Status='Pending' THEN 1 ELSE 0 END)Pending,
      SUM(CASE WHEN Status='Completed' THEN 1 ELSE 0 END)Completed,
      SUM(CASE WHEN Status='Cancelled' THEN 1 ELSE 0 END)Cancelled
FROM Table A 
WHERE Date='2014-01-01'
GROUP BY Date
试试这个:

select A.date,
    count(
        case
            when A.Status='Pending'
            Then 1
            Else NULL
        End
    ) as Pending,
    count(
        case
            when A.Status='Completed'
            Then 1
            Else NULL
        End
    ) as Completed,
    count(
        case
            when A.Status='Cancelled'
            Then 1
            Else NULL
        End
    ) as Cancelled
    From A
    group by A.date

这些是状态字段的唯一可能值吗?如果是这样,谷歌的条件聚合。谢谢你尝试了这个,它的工作原理,改变了WHERE与have,因为我相信你不能使用WHERE与GROUP BY。但是,我不确定他们从何处获取10作为值。我的查询是错误的,在GROUP BY之前的查询中,哪里应该是第一个。我已经编辑过了。试试看。