php - MySQL 从不同的列中选择计数也使用 group by
问题描述
我有这张表叫做任务。我想获取每个 assign_date 的总任务计数,以及在该日期每个用户按 complete_date 完成的任务数量。
我想要类似下面的东西
[{
user_id:1 ,
assign_date / compete_date : 2019-09-04,
assign_task : 2,
complete_task: 1
},
{
user_id:1 ,
assign_date / compete_date : 2019-09-19,
assign_task : 1,
complete_task: 2
}
]
解决方案
这是您的查询。usingunion all
将获得分配日期和完成日期的计数
select user_id
, complete_date as [assign_date / compete_date]
, sum(case when t1.s = 'assigned' then 1 else 0 end) as assign_task
, sum(case when t1.s = 'complete' then 1 else 0 end) as complete_task
from
(select user_Id, complete_date, 'complete' as s from task
union all
select user_Id, assign_date, 'assigned' as s from task) t1
group by t1.complete_date, t1.user_id
推荐阅读
- react-native - 如何将值从屏幕传递到底部标签图标徽章?
- javascript - 在重叠点的高图中显示多个工具提示
- terraform - terraform plan/apply 想要创建导入的资源?
- html - 可以放吗里面的标签
标签? - java - 在Java多线程中停止特定IP地址的套接字线程
- sql - 首先按名称排序,然后从分隔字符串中的 sql 查询中的编号
- oracle - 我不能在 datagrip 中使用绑定变量
- c# - 在运行时通过 .Net Core DI 容器更改服务是作为作用域注入还是瞬态注入?
- function - 使用 Monte Carlo 方法计算函数的积分,范围从 3 到 10
- vue.js - axios、nuxt 和 docker 的奇怪行为