尝试计算活跃,不活跃和专业会员总数

时间:2019-01-18 16:56:33

标签: sql database

我正在尝试对经典和基本会员类型的活跃会员和非活跃会员进行比较-在经典会员中,有一部分会员是通过另一家公司注册的,但这些会员也被认为是经典会员。

到目前为止,我已经能够选择所有经典或基本成员资格,并显示它们是否处于活动状态。但是,我没有成功地计算出通过不同公司完成的每个经典会员的活跃会员和非活跃会员的数量。

到目前为止,我有这个:

SELECT 
    m.membershipID as MembershipID,
    m.Level,
    s.subInactive,
    CASE 
        WHEN s.subInactive = 0 THEN s.subInactive + 1
        WHEN s.subInactive = 1 THEN s.subInactive - 1
    END AS oneMeansActive
FROM dbo.membershipsStartsAndDrops m
INNER JOIN dbo.Subscriptions s on m.membershipID = s.subSubscription_ID

我知道我可能走错了路,但是如果有人能指出我正确的方向,我将不胜感激。谢谢!

样本数据:

membershipID | Level | subInactive | OneMeansActive
1             Classic      0              1
2             Basic        0              1
3             Classic      0              0

所需结果:

ActClassic | ActBasic | InaClassic | InaBasic | ActSpecial
  83079        5607       12658        3403        1270

列=通过第3方公司注册的有效经典会员资格,有效基本会员资格,无效经典会员资格,无效基本会员资格,有效经典会员资格。

我无法弄清楚如何计算所有这些值以及如何像这样对它们进行分组。我也要从2个不同的数据库中提取数据。通过第三方公司注册的经典成员资格与tbl_subscription来自同一数据库。它来自的表是company_members

1 个答案:

答案 0 :(得分:0)

您似乎想要条件聚合。像这样:

new_l = re.sub('%\d+', lambda x:_dict.get(x.group(), x.group()), l)