簡體   English   中英

Oracle SQL:基於另一列獲取不同列值的計數

[英]Oracle SQL: Obtain count of distinct column values based on another column

這是一個示例數據來解釋我的情況,

公司信息:

Name,   Company, Location,   Completed,  Pending
Andy      AA        Home        4         2
Jim       AA        Office      3         3
Dahli     AA        Home        4         2
Monica    AA        Home        4         2
Chandler  AA    Home-Office     1         0
Ashley    AA    Home-Office     1         0

最后三列有重復的信息,我正在嘗試獲取相互綁定的位置、已完成和待處理的計數。 所以 output 看起來像下面這樣,

   Company, Count(Locations), Count( Completed+Pending > 0),
    AA            3                   3

為什么 Count(Completed+Pending > 0) 是 3? 只有三個獨特的 Home、Office 和 home-office 列組合,其中已完成 + 待處理的總和 > 0。

我確實在下面嘗試過,但它給了我(AA, 3, 6)因為它正在處理所有 6 行以獲得計數。

select Company, 
       count(distinct Location),
        SUM (
               CASE
                  WHEN (Completed + Pending) > 0 THEN 1
                  ELSE 0
               END)
               AS Total
       From CompanyInfo
       group by Company;

任何指針?

認為你想要一個條件count(distinct)

select Company, 
       count(distinct Location),
       count(distinct case when Completed + Pending > 0 then location end)
from CompanyInfo
group by Company;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM