簡體   English   中英

對同一列中具有兩個不同值的結果進行計數

[英]Counting results that have two different values in the same column

我在支持部門工作,我試圖計算將這兩個標簽同時應用於多少個“案例”:

“聊天”和“升級”

這是我正在使用的查詢,但是我得到的數字不正確:

    select count(pk_case_number)
    from cases c
    join labels l
    on l.case_number = c.case_number
    where lower(label_name) = 'chat' 
    and exists (select distinct case_number
    from cases c
    join labels l
    on on l.case_number = c.case_number
    where l.case_number = c.case_number
    and lower(label_name) = 'escalated')
    and date(created_at) > '2013-08-11' 

“ created_at”在cases表中。

以下查詢列出了條件為真的所有情況:

select pk_case_number
from cases c join
     labels l
     on l.case_number = c.case_number
group by pk_case_number
having sum(lower(label_name) = 'chat') > 0 and
       sum(lower(label_name) = 'escalated') > 0;

以下是對它們的計數:

select count(*)
from (select pk_case_number
      from cases c join
           labels l
           on l.case_number = c.case_number
      group by pk_case_number
      having sum(lower(label_name) = 'chat') > 0 and
             sum(lower(label_name) = 'escalated') > 0
     ) t

我喜歡使用聚合和having子句進行這類查詢,因為我發現這是最通用的查詢。 添加所需的新標簽或排除特定標簽很容易(使用= 0而不是> 0 )。

暫無
暫無

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

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