簡體   English   中英

Oracle SQL:在組合兩個 CASE WHEN 語句時使用 COUNT() >1

[英]Oracle SQL: Using COUNT() >1 When Combining two CASE WHEN Statements

我有一行 SQL,它產生了購買變量的計數

count(distinct case when t.transaction_sub_type =1 then t.transaction_date end) as COUNTPUR, 

我需要修改它,以便我可以生成一個 0/​​1 標志變量,它標記客戶是否是重復購買者。 因此,當客戶的購買大於 1 時,則標記為 1,否則標記為 0。

case when COUNTPUR>1 then 1 else 0 end as FLAG_REPEATPURCHASER

我需要將這兩個 case 語句合二為一。 我一直在嘗試不同版本的語法,但我似乎無法確定它。 以下是無效的實驗之一。

 max(case when (count(distinct case when t.transaction_sub_type =1 then t.transaction_date end))>1 then 1 else 0 end) as  FLAG_REPEATPURCHASER,

提前感謝您的幫助

您可以使用帶有條件聚合的case表達式:

(case when count(distinct case when t.transaction_sub_type = 1 then t.transaction_date end) > 1
      then 1 else 0
 end) as FLAG_REPEATPURCHASER

暫無
暫無

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

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