Mysql 在SQL中基于日期组织数据

Mysql 在SQL中基于日期组织数据,mysql,sql,date,dataset,pivot,Mysql,Sql,Date,Dataset,Pivot,我的数据集如下所示: Category Date -------- ---- Backlog 7/18/18 Backlog 7/18/18 Testing 7/18/18 Done 7/18/18 Backlog 7/19/18 Develop 7/19/18 Backlog 7/20/18 Done 7/20/18 Done 7/20/18 Date1 B

我的数据集如下所示:

 Category    Date
 --------    ----
 Backlog     7/18/18
 Backlog     7/18/18
 Testing     7/18/18
 Done        7/18/18
 Backlog     7/19/18
 Develop     7/19/18
 Backlog     7/20/18
 Done        7/20/18
 Done        7/20/18
Date1       Backlog DONE    Testing
2018-07-18  2       1        1
2018-07-19  2       NULL    NULL
2018-07-20  NULL    2       NULL
我想通过计数/组织将其转化为:

 Backlog     Testing    Develop    Done     Date
 -------     -------    -------    ----     ----
    2           1          0        1      7/18/18
    2           0          1        0      7/19/18
    1           0          0        2      7/20/18
然而,原始数据集每天都在用新的日期更新。第二天,一些新行将添加到表中,带有日期为7/21/18的Backlog/develope/Testing/Done标记。如何在sql中创建此转换,同时还要考虑数据集每天都在更新的事实?

您需要条件聚合:

select sum(Category = 'Backlog') as Backlog, 
       sum(Category = 'Testing') as Testing,
       sum(Category = 'Develop') as Develop,
       sum(Category = 'Done') as Done,
       date
from table t
group by date;
您需要条件聚合:

select sum(Category = 'Backlog') as Backlog, 
       sum(Category = 'Testing') as Testing,
       sum(Category = 'Develop') as Develop,
       sum(Category = 'Done') as Done,
       date
from table t
group by date;
输出将如下所示:

 Category    Date
 --------    ----
 Backlog     7/18/18
 Backlog     7/18/18
 Testing     7/18/18
 Done        7/18/18
 Backlog     7/19/18
 Develop     7/19/18
 Backlog     7/20/18
 Done        7/20/18
 Done        7/20/18
Date1       Backlog DONE    Testing
2018-07-18  2       1        1
2018-07-19  2       NULL    NULL
2018-07-20  NULL    2       NULL
输出将如下所示:

 Category    Date
 --------    ----
 Backlog     7/18/18
 Backlog     7/18/18
 Testing     7/18/18
 Done        7/18/18
 Backlog     7/19/18
 Develop     7/19/18
 Backlog     7/20/18
 Done        7/20/18
 Done        7/20/18
Date1       Backlog DONE    Testing
2018-07-18  2       1        1
2018-07-19  2       NULL    NULL
2018-07-20  NULL    2       NULL

考虑在呈现层/应用层代码中处理数据显示的问题,假设您有这样的(例如,一个简单的PHP循环作用于一个有序数组)。考虑在呈现层/应用层代码中考虑数据显示的问题,假设您有这个问题(例如,一个简单的PHP循环作用于有序数组)。