mysql - 如何根据 sql 使用案例中的某些特定条件获得所需的结果?
问题描述
我有一个表,它跟踪用户记录我想知道哪些是完整的,并根据用户的状态处理用户的记录
这是sql查询
SELECT users.UserID,users.UserName,users.FirstName,users.LastName,users.Email,
CASE WHEN inword.inword_status = '3' THEN count(*) END As 'Process' ,
CASE WHEN inword.inword_status = '4' THEN count(*) END AS 'Complete'
FROM tbl_user users
INNER JOIN tbl_inword inword on users.UserID=inword.UserID
Where inword.Status=1 and users.Status=1 and
inword.CreatedDate BETWEEN '2020-10-01' and '2020-10-31' and inword.inword_status in (3)
group by users.UserID
这是查询输出
我的预期结果是
UserID Name Total Process Complete
1 Umair 1 1 0
1 Basit 20 20 0
1 Zaidi 34 32 2
任何帮助,将不胜感激
解决方案
你没有正确地进行条件聚合,你应该使用类似的东西:
COUNT(CASE WHEN inword.inword_status = '3' THEN inword.UserId END) As 'Process' ,
COUNT(CASE WHEN inword.inword_status = '4' THEN inword.UserId END) AS 'Complete'
或者您可以利用 MySQL 将布尔值视为1
或0
在数字上下文中,并简化为:
SUM(inword.inword_status = '3') As 'Process' ,
SUM(inword.inword_status = '4') AS 'Complete'
推荐阅读
- python - 使用 python 3.6 在 mac 上安装 mysqlclient 时出错
- arrays - 为具有 JSON 数组值的 jsonb 列创建 Postgres 索引
- twitter-bootstrap - 在 scss 中导入引导程序会使任务变慢
- woocommerce - 使用电子邮件 ID 创建帐户 woocomerce
- powershell - Powershell v5.1:从共享服务器复制到远程 PC 上的本地文件夹
- r - R函数中的NaN值
- django - Django - 表单不验证
- office-js - 是否可以等到当前方法的执行完成
- django - 一个字段的多个外键
- javascript - Javascript - 从包含增值税的价格中保存不含增值税的价格时的圆形问题