[英]Select count of some columns where a condition is valid
这是我目前正在处理的查询:
SELECT COUNT(approved) AS 'approve'
, COUNT(approved) AS 'deny'
, COUNT(approved) AS 'unset'
FROM `approval`
WHERE 'approve' = 'Approved'
AND 'deny' = 'Denied'
AND 'unset' = 'Unset
我希望计数记录枚举批准的所有时间=批准,拒绝和未设置
使用mysql,有一种巧妙的方法可以执行枢轴操作 :
SELECT
SUM(approved = 'Approved') approve,
SUM(approved = 'Denied') deny,
SUM(approved = 'Unset') unset
FROM approval
WHERE approved in ('Approved', 'Denied', 'Unset')
这是可行的,因为在mysql中true为1,false为0,因此对条件求和会计算条件为true的次数。
where子句是可选的。
这应该工作:
SELECT SUM(CASE WHEN approved = 'Approved' THEN 1 ELSE 0 END) AS approve,
SUM(CASE WHEN approved = 'Denied' THEN 1 ELSE 0 END) AS deny,
SUM(CASE WHEN approved = 'Unset' THEN 1 ELSE 0 END AS unset
FROM approval
WHERE approved IN ('Approved','Denied','Unset')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.