【问题标题】:SQL Count the numbers in a returned query?SQL 计算返回查询中的数字?
【发布时间】:2013-06-11 13:23:58
【问题描述】:

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

【问题讨论】:

    标签: sql count group-by subquery distinct


    【解决方案1】:

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

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

    【讨论】:

    • 只需要在 a.account_status_code 和 'c' 之间添加一个 。否则,完美!
    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多