2014-08-27 68 views
1

我有两个表格,一个表格包含我发送给某些人的所有电子邮件,另一个表格包含在我向他们发送这些电子邮件后在我的网站中注册的所有人员。计算插入两个表中的值之间的百分比

我需要实现的是计算的百分比FO网友认为registred,所以现在我有这样的:

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

在这个例子中,我需要建立一个查询女巫将返回20%,因为2十分之一意味着20%。

回答

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 
+0

@paulalexandru请参阅编辑后的查询。基本上我们将两个值都转换为十进制(只有第二个值是必要的,但我更愿意保持一致),然后进行除法。我也给你列了别名:) – SchmitzIT 2014-08-27 08:13:30

+0

请通过我的答案以及。 [这是我的回答](http://sqlfiddle.com/#!3/7eb98/1)。我刚创建了示例表。 – Wanderer 2014-08-27 08:16:36