我正在使用PHP和MySQL开发日记管理脚本。我陷入了一种情况,我将在下面提出一个假设的表结构和我的要求。
|---------------|--------------| | User Name | Status | |---------------|--------------| | John | Open | |---------------|--------------| | John | Assigned | |---------------|--------------| | John | Closed | |---------------|--------------| | Miller | Assigned | |---------------|--------------| | Miller | Assigned | |---------------|--------------| | Smith | Closed | |---------------|--------------|
我期待如下所示的最终网页输出。
|---------------|--------------|--------------|--------------| | User Name | Open | Assigned | Closed | |---------------|--------------|--------------|--------------| | John | 1 | 1 | 1 | |---------------|--------------|--------------|--------------| | Miller | 0 | 2 | 0 | |---------------|--------------|--------------|--------------| | Smith | 0 | 0 | 1 | |---------------|--------------|--------------|--------------|
请建议使用MySQL查询(使用GROUP BY)本身是否可以生成这个现成的或者我必须得到一些编程逻辑的帮助。如果是这样我应该编码什么?我非常无奈。我可以在这里提供整个脚本,但我不是为了避免混淆。
答案 0 :(得分:2)
select `User Name`,
sum(case when Status = 'Open' then 1 end) as Open,
sum(case when Status = 'Assigned' then 1 end) as Assigned,
sum(case when Status = 'Closed' then 1 end) as Closed
from Status
group by `User Name`