如何计算两个查询之间的百分比?

时间:2016-06-19 13:58:53

标签: mysql sql

我希望生成一个结果或创建一个基于计算一个查询/另一个查询的百分比的视图。

这些是查询:

查询1:

SELECT
count(distinct email), Utility
from elec_cust
where email != 'NULL' and MAILLIST = '1'
GROUP BY Utility
ORDER BY count(distinct email)

和 QUERY2:

SELECT
count(distinct email), Utility
from elec_cust
where email != 'NULL' and MAILLIST = '0'
GROUP BY Utility
ORDER BY count(distinct email)

我希望以百分比形式生成Query2 / Query1的结果:

实用程序|百分比

1 个答案:

答案 0 :(得分:2)

您可以使用条件聚合来完成:

SELECT COUNT(DISTINCT CASE WHEN MAILLIST = '1' THEN email END) as Query_1_result,
       COUNT(DISTINCT CASE WHEN MAILLIST = '0' THEN email END) as Query_2_result,
       COUNT(DISTINCT CASE WHEN MAILLIST = '1' THEN email END)/COUNT(DISTINCT CASE WHEN MAILLIST = '0' THEN email END)*100 AS Perc_Col ,
       Utility
from elec_cust
where email != 'NULL' 
GROUP BY Utility

MySQL将1之类的布尔表达式视为true,将0视为false。因此,这将总结MAILLIST = '1'并将其除以MAILLIST = '0'

您可以删除前两列,我已添加它们以方便您使用。