Mysql 如何从“Case-When”条件计数
我希望有人能为我的案子提供帮助: 当我的sql代码中出现以下情况时,如何从我的案例中计数:Mysql 如何从“Case-When”条件计数,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我希望有人能为我的案子提供帮助: 当我的sql代码中出现以下情况时,如何从我的案例中计数: SELECT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) >3 THEN 'NOK' ELSE 'OK' END AS STATUS FROM complaint a LEFT JOIN handling b ON a.cid = b.cid 应该是这样的:D哈哈: Select status,count(*) From ( SELECT C
SELECT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) >3
THEN 'NOK'
ELSE 'OK'
END AS
STATUS FROM complaint a
LEFT JOIN handling b ON a.cid = b.cid
应该是这样的:D哈哈:
Select status,count(*)
From
(
SELECT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) >3 THEN 'NOK' ELSE 'OK' END AS STATUS FROM complaint a LEFT JOIN handling b ON a.cid = b.cid
) a
Group by status
尝试下面的查询-
SELECT CASE WHEN DATEDIFF( b.`DATE` , A.`SUBMIT_DATE` ) >3 THEN 'NOK' ELSE 'OK' END AS mystatus,
SUM(IF(DATEDIFF( b.`DATE` , A.`SUBMIT_DATE` ) >3,1,0)) AS cnt
FROM complaint a
LEFT JOIN handling b ON a.cid = b.cid
GROUP BY mystatus;
或者,您可以将statusOK、NOK转换为不同的列:
SELECT
COUNT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) >3 THEN 1 END) AS 'NOK',
COUNT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) <=3 THEN 1 END) AS 'OK'
FROM complaint a LEFT JOIN handling b ON a.cid = b.cid
按状态从投诉组中选择status,COUNT*,您是否尝试过此操作
SELECT
COUNT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) >3 THEN 1 END) AS 'NOK',
COUNT CASE WHEN datediff( b.`DATE` , A.`SUBMIT_DATE` ) <=3 THEN 1 END) AS 'OK'
FROM complaint a LEFT JOIN handling b ON a.cid = b.cid