早上好,是否可以通过交叉表查询计算 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
这会将月份输出为显示每月案例的列,“总计”列对行进行计数,而“通讯”列仅对带有日期的案例进行计数。我想做的是计算 Total/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。
据我所知,直接重用一个计算列来计算另一计算列中的值是不可能的。但是重复计算 Count
的开销应该不会太严重,也许 MySQL 甚至会检测到这些常见术语并只计算一次,我不知道。
关于Mysql交叉表查询百分比计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966870/