计算插入两个表中的值之间的百分比

时间:2014-08-27 07:38:18

标签: sql sql-server

我有两张桌子,一张桌子包含我发给某些人的所有电子邮件,另一张桌子包含我发给他们电子邮件后在我网站上注册的所有人。

我需要实现的是计算注册用户的百分比,所以现在我有这个:

SELECT COUNT(*) from email_sent       //10   
SELECT COUNT(*) from registred_users  //2

对于这个例子,我需要构建一个返回20%的查询,因为10个中的2个意味着20%。

1 个答案:

答案 0 :(得分:2)

SELECT 
    mailsSent 
    , userAmount 
    , CONVERT(decimal(14,2), mailsSent) / CONVERT(decimal(14,2), userAmount) AS Percentage
FROM
    (SELECT COUNT(*) AS mailsSent from email_sent) a
    , (SELECT COUNT(*) AS userAmount from registred_users) b

基本上,这两个子查询将以2个别名列的形式为您提供原始值,然后您可以从主查询中划分。

编辑:

显式转换的替代方法是乘以1.0将值转换为数字。正如我的评论所述,实际上只需要1次转换:

SELECT 
    mailsSent 
    , userAmount 
    , mailsSent  * 1.0 / userAmount AS Percentage
FROM
    (SELECT COUNT(*) AS mailsSent from email_sent) a
    , (SELECT COUNT(*) AS userAmount from registred_users) b