SQL计算返回查询中的数字?

时间:2013-06-14 19:49:10

标签: sql count group-by subquery distinct

我有一个查询来检索与电子邮件地址关联的电子邮件地址和名称(有时超过1),其中帐户状态未按优惠顺序关闭:

SELECT sbg.contact_email, COUNT(DISTINCT sbg.contact_name) Num_Contact_Names
    FROM SummaryBillGroup sbg
    INNER JOIN Account a
        ON sbg.Customer_number = a.Customer_number
WHERE a.account_status_code <> 'c'
GROUP BY sbg.contact_email
ORDER BY Num_Contact_Names DESC

这将返回电子邮件地址列表以及与每个电子邮件地址关联的名称数量。我现在要做的是使用该查询来计算所有返回的数字,以便我有3个,2个,1个等的列表。

1 个答案:

答案 0 :(得分:2)

您可以将同一查询用作另一个查询的派生表。像这样:


    select num_contact_names, count(*)
from (SELECT sbg.contact_email, COUNT(DISTINCT sbg.contact_name) Num_Contact_Names
    FROM SummaryBillGroup sbg
    INNER JOIN Account a
        ON sbg.Customer_number = a.Customer_number
WHERE a.account_status_code  'c'
GROUP BY sbg.contact_email) as t
group by t.num_contact_names
order by 2

第一行会给你1,第二行会给你2,依此类推。欢呼声。