繁体   English   中英

在SQL中,我该如何使用CASE和COUNT编写查询

[英]In SQL how do I write a query with CASE and COUNT

我有用户电子邮件和公司ID的表格。 用户可以在其帐户中添加多个公司。 因此,用户的电子邮件中可能有多个公司ID。 我想编写一个查询来对用户进行计数(已经写过该查询),并将它们标识为多个公司用户。 因此,在我的COUNT语句中,我应该写的是,如果该电子邮件中有多个公司ID,则该用户标识为多公司用户。

以下是我为获取具有多个ID的电子邮件列表而编写的查询。

SELECT email, COUNT(company_id) AS count_of_companies 
FROM database
GROUP BY email
HAVING COUNT(company_id) > 1
ORDER BY count_of_companies DEC;

谢谢

假设您需要识别并获取多公司用户列表,我已经修改了您的查询

 SELECT EmailID, CASE  WHEN count_of_companies >  1  THEN 'MultiCompany User' ELSE 'Single' END FROM
   (
         SELECT EmailID, COUNT(companyID) AS count_of_companies 
          FROM #temp_company
          GROUP BY EmailID
   )t

通过电子邮件统计公司和分区:

select email,
 (case when count(companyid)over(partition by email) > 1
  then 'multi-company-user'
else 'single-company-user'
end) as count_of_companies
from your_table

尝试这个

SELECT EMAIL
        ,CASE 
            WHEN COUNT(COMPANY_ID) > 1
                THEN 'MULTI-COMPANY'
            ELSE 'SINGLE-COMPANY'
            END AS COUNT_OF_COMPANIES
        FROM DATABASEA 
        GROUP BY EMAIL
        ORDER BY COUNT_OF_COMPANIES DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM