首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试为SQLITE在DB浏览器上增加一行中每个“标志”值的单元格1

问尝试为SQLITE在DB浏览器上增加一行中每个“标志”值的单元格1
EN

Stack Overflow用户
提问于 2020-05-02 23:13:48
回答 1查看 23关注 0票数 1

我试图为每一个等于'2‘的“标志”增加一行的单元格。

更具体地说,我有一个表,其中包含customer_numbers和相应的产品组,可以标记为{0:‘从不使用产品’、1:‘非活动’、2:'active'}

因此,我的列名类似于{customer_no,GRP1,GRP2,GRP3,GRP4,GRP5,还有另一列,我创建该列的目的是将其计数为GROUP_ACTIVE_COUNT}

对于每个客户,我想数一数他们活跃在多少个product_groups上。

例如:

  • customer 1:2 GRP3 2:2 GRP3 3:0 GRP3 4:1 GRP3 5:2:1 GRP1 2:1 GRP1 3:1 GRP1 4:1 GRP1 5:1- GROUP_ACTIVE_COUNT = 0
  • customer 5's GRP1 1:0 GRP1 2:0 GRP1 3:0 GRP4:0 GRP5:0 --> GROUP_ACTIVE_COUNT将等于0

以下是我迄今所做的工作:

代码语言:javascript
复制
 SELECT
     CUST_NO
    ,GROUP_ACTIVE_C
    ,GROUP_ACTIVE_COUNT
    ,CASE
        WHEN GRP1 = 2 THEN --DO SOMETGING LIKE GROUP_ACTIVE_COUNT = GROUP_ACTIVE_COUNT+1
        WHEN GRP2 = 2 THEN --DO SOMETGING LIKE GROUP_ACTIVE_COUNT = GROUP_ACTIVE_COUNT+1
        WHEN GRP3 = 2 THEN --DO SOMETGING LIKE GROUP_ACTIVE_COUNT = GROUP_ACTIVE_COUNT+1
        WHEN GRP4 = 2 THEN --DO SOMETGING LIKE GROUP_ACTIVE_COUNT = GROUP_ACTIVE_COUNT+1
        WHEN GRP5 = 2 THEN --DO SOMETGING LIKE GROUP_ACTIVE_COUNT = GROUP_ACTIVE_COUNT+1    
    ,GRP1
    ,GRP2
    ,GRP3
    ,GRP4
    ,GRP5
FROM XSELL_DATAMART

我的主要问题是,我不能用create创建一个变量,这样我就可以在其中转储+1并将它保存到相应的行中:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-02 23:28:20

一个简单的选择是:

代码语言:javascript
复制
select
    x.*,
    (grp1 = 2) + (grp2 = 2) + (grp3 = 2) + (grp4 = 2) + (grp5 = 2) group_active_count
from xsell_datamart x

SQLite将每个条件计算为1 (如果为true )和0 (如果为false ),因此,将条件相加将给出一个整数值,表示满意条件的计数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61567556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档