【问题标题】:Oracle SQL: Using COUNT() >1 When Combining two CASE WHEN StatementsOracle SQL:在组合两个 CASE WHEN 语句时使用 COUNT() >1
【发布时间】:2020-03-27 13:13:06
【问题描述】:

我有一行 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,

提前感谢您的帮助

【问题讨论】:

    标签: sql count case


    【解决方案1】:

    您可以将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
    

    【讨论】:

    • 对不起,我只是删除了上面的评论。有用。谢谢
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2013-05-31
    • 2020-07-31
    • 2021-02-05
    • 1970-01-01
    • 2021-05-01
    • 2011-06-30
    • 2020-01-27
    相关资源
    最近更新 更多