查询所需的MYSQL总数
您好,我正在寻找一个解决方案,以解决我无法理解如何在我的查询中获得一列的总体总数的问题 此查询获取工程师姓名以及他们拥有的超出SLA的作业数,即该作业本应完成的数据已经过去,而该作业仍需完成查询所需的MYSQL总数,mysql,count,Mysql,Count,您好,我正在寻找一个解决方案,以解决我无法理解如何在我的查询中获得一列的总体总数的问题 此查询获取工程师姓名以及他们拥有的超出SLA的作业数,即该作业本应完成的数据已经过去,而该作业仍需完成 SELECT Engineer,Job_Status,COUNT(*) as 'Out Of SLA' FROM import WHERE (Job_Status = 'P' or Job_Status='P2' or Job_Status='P8') and (isnull(Job_Co
SELECT Engineer,Job_Status,COUNT(*) as 'Out Of SLA'
FROM import
WHERE (Job_Status = 'P' or Job_Status='P2' or Job_Status='P8')
and (isnull(Job_Completed_Date)
or Job_Completed_Date='0000-00-00')
and (Job_SLA_Due_Date < CURDATE()
)
GROUP BY import.Engineer,Job_Status
我希望能够显示超出SLA列的总数以及表数据的其余部分(如果有意义的话),如下表所示
| Engineer | Job_Status | Out of SLA |
|------------- |------------ |------------ |
| Andy Beeres | P | 14 |
| | P2 | 3 |
| | P8 | 1 |
| Total | | 18 |
| Andy Broad | P | 12 |
| | P2 | 2 |
| Total | | 14 |
| Grand Total | | 32 |
问候
Alan一个选项是使用子查询查找SLA总计:
SELECT Engineer,
Job_Status,
COUNT(*) AS `Out Of SLA`,
(SELECT COUNT(*) FROM import) AS total_sla
FROM import
WHERE (Job_Status = 'P' OR Job_Status='P2' OR Job_Status='P8') AND
(ISNULL(Job_Completed_Date) OR Job_Completed_Date = '0000-00-00') AND
Job_SLA_Due_Date < CURDATE()
GROUP BY Engineer,
Job_Status
与group by一起使用,以获得总的_sla
根据:
GROUP BY子句允许WITH ROLLUP修饰符,该修饰符使摘要输出包含表示更高级别(即超级聚合摘要操作)的额外行。因此,汇总使您能够使用单个查询在多个分析级别上回答问题
这不是OP想要的。total_sla应该是最后一列的总和。@GrzegorzGórkiewicz你错了。SLA列是每个组的计数。因此,表中的总数就是整个表的计数。但是如果OP还想要别的东西,我的答案可能是错的。@anonymous downvoter:不清楚OP想要的是表格底部的一个条目,还是每列的总数。如果是后者,那么我的答案是一个选项。如果有意义的话,还有表中的其他数据。。。只有显示用于分组、聚合或非相关子查询的列才有意义。也许你可以告诉我们你真正想要的输出。嗨,我已经更新了我的原始问题,如果你能看一下,我将不胜感激。
SELECT Engineer,
Job_Status,
COUNT(*) AS `Out Of SLA`,
(SELECT COUNT(*) FROM import) AS total_sla
FROM import
WHERE (Job_Status = 'P' OR Job_Status='P2' OR Job_Status='P8') AND
(ISNULL(Job_Completed_Date) OR Job_Completed_Date = '0000-00-00') AND
Job_SLA_Due_Date < CURDATE()
GROUP BY Engineer,
Job_Status
SELECT Engineer,Job_Status,COUNT(*) as 'Out Of SLA'
FROM import
WHERE (Job_Status = 'P' or Job_Status='P2' or Job_Status='P8')
and (isnull(Job_Completed_Date)
or Job_Completed_Date='0000-00-00')
and (Job_SLA_Due_Date < CURDATE()
)
GROUP BY import.Engineer,Job_Status WITH ROLLUP