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