簡體   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