[英]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.