Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 - Fatal编程技术网

Mysql交叉表查询计数百分比?

Mysql交叉表查询计数百分比?,mysql,Mysql,早上好,是否可以从交叉表查询中计算出2个计算列的百分比,我的缩减查询如下 Select a.ContactFullName As Adviser, Sum(Month(b.CaseDate) = 1) As Jan, Sum(Month(b.CaseDate) = 2) As Feb, Sum(Month(b.CaseDate) = 3) As Mar, Count(b.CaseID) As Total, Count(b.StatusSubmittedDate) As C

早上好,是否可以从交叉表查询中计算出2个计算列的百分比,我的缩减查询如下

Select
  a.ContactFullName As Adviser,
  Sum(Month(b.CaseDate) = 1) As Jan,
  Sum(Month(b.CaseDate) = 2) As Feb,
  Sum(Month(b.CaseDate) = 3) As Mar,
  Count(b.CaseID) As Total,
  Count(b.StatusSubmittedDate) As Comms

From
  tblcontacts a Inner Join
  tblcases b On a.ContactID = b.ContactAssignedTo
Group By
  a.ContactFullName With Rollup
这是将月份作为列输出,显示每个月的案例,总计列统计行,而Comms列仅统计带有日期的案例。我想做的是计算总数/通信的百分比

Total | Comms | %_Share
100   | 50    | 50%
346   | 53    | 15%
278   | 89    | 32%
我是否以错误的方式看待问题,是否应该创建多个查询来实现


感谢您的浏览

只需选择另一列:

Select …,
  100*Count(b.StatusSubmittedDate)/Count(b.CaseID) As `%_Share`
From …
这是100*Comms/Total,是您预期输出的方式,而不是您在文本中所写的Total/Comms


据我所知,直接重用一个计算列来计算另一个计算列中的值是不可能的。但是重复计算
计数的开销应该不会太大,也许MySQL甚至会检测到这样的常用术语,并且只计算一次,我不知道。

太棒了,我需要的正是我所需要的。非常感谢您的时间,就在这里。