我试图为每一个等于'2‘的“标志”增加一行的单元格。
更具体地说,我有一个表,其中包含customer_numbers和相应的产品组,可以标记为{0:‘从不使用产品’、1:‘非活动’、2:'active'}
因此,我的列名类似于{customer_no,GRP1,GRP2,GRP3,GRP4,GRP5,还有另一列,我创建该列的目的是将其计数为GROUP_ACTIVE_COUNT}
对于每个客户,我想数一数他们活跃在多少个product_groups上。
例如:
以下是我迄今所做的工作:
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并将它保存到相应的行中:
发布于 2020-05-02 23:28:20
一个简单的选择是:
select
x.*,
(grp1 = 2) + (grp2 = 2) + (grp3 = 2) + (grp4 = 2) + (grp5 = 2) group_active_count
from xsell_datamart xSQLite将每个条件计算为1 (如果为true )和0 (如果为false ),因此,将条件相加将给出一个整数值,表示满意条件的计数。
https://stackoverflow.com/questions/61567556
复制相似问题