Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询所需的MYSQL总数_Mysql_Count - Fatal编程技术网

查询所需的MYSQL总数

查询所需的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

您好,我正在寻找一个解决方案,以解决我无法理解如何在我的查询中获得一列的总体总数的问题

此查询获取工程师姓名以及他们拥有的超出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_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