0

我有一个查询来检索与电子邮件地址关联的电子邮件地址和名称(有时超过 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 等的列表。

4

1 回答 1

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,依此类推。干杯。

于 2013-06-14T19:56:10.763 回答