Sql 如何在CognosReportStudio中创建每个重复值的不同计数?

Sql 如何在CognosReportStudio中创建每个重复值的不同计数?,sql,cognos-10,Sql,Cognos 10,这些是我目前的数据 ACCOUNT NUMBER PRODUCT STATUS RANK DESIGN 1 530033 Wealth Services Closed 1 Manual 2 530033 Wealth Services Closed 2 Manual 3 530033 Wealth Services Closed 3 Manual

这些是我目前的数据

ACCOUNT NUMBER     PRODUCT          STATUS   RANK   DESIGN

    1  530033   Wealth Services     Closed    1     Manual
    2  530033   Wealth Services     Closed    2     Manual
    3  530033   Wealth Services     Closed    3     Manual
    4  530033   Wealth Services     Closed    4     Manual
    5  534656   Initial Escrow      Open      1     Manual
    6  534656   Initial Escrow      Open      2     Manual
    7  535161   Markets Integrity   Closed    1     Manual
    8  538379   Prepaid Cards       Closed    1     Manual
    9  538379   Prepaid Cards       Closed    2     Manual
    10 538379   Prepaid Cards       Closed    3     Manual
    11 538379   Prepaid Cards       Closed    4     Manual
    12 538915   Uploaded Cards      Open      1     Manual
    13 538915   Uploaded Cards      Open      2     Manual
    14 538915   Uploaded Cards      Open      3     Manual
我想创建一个列,唯一地计算每个重复的帐号。例如,账号530033出现了四次,我想把每一个530033都算一次,同样的,另一个账号534656出现了两次才算一次

我已经尝试过以下方法,但都没有成功

count(distinct(Account Number))
count(distinct(Account Number) for Account Number)
聚合列等于总计、计数或自动

我将使用这些数据创建一个交叉选项卡。我的交叉表给我的总数是14,因为它计算了所有重复的帐号。因为所有帐号都有十四行。但实际上只有5个账号(530033、534656、535161、538379和53891)

理想情况下应该是这样

                    TOTAL    Open         Closed
Wealth Services        1                       1
Initial Escrow         1         1
Markets Integrity      1                       1
Prepaid Cards          1                       1
Uploaded Cards         1         1
    TOTAL              5   
我应该创建一个名为Unique count of account Number的新列吗?但是我如何单独计算帐号呢


我是否必须创建另一个具有唯一帐号的表,然后将这两个表进行内部联接?

我相信您需要的表达式如下所示:

总计

COUNT(DISTINCT [ACCOUNT NUMBER] for [PRODUCT])
打开

CASE [STATUS] 
WHEN 'Open' THEN COUNT(DISTINCT [ACCOUNT NUMBER] for [PRODUCT],[STATUS]) 
ELSE NULL  
END
关闭

CASE [STATUS] 
WHEN 'Closed' THEN COUNT(DISTINCT [ACCOUNT NUMBER] for [PRODUCT],[STATUS]) 
ELSE NULL 
END

确保将每个数据项的聚合函数设置为“计算”,因为我们正在手动指定聚合和汇总。

Hello Johnson。我使用了你提供和创建的逻辑,它工作了!再次感谢。
CASE [STATUS] 
WHEN 'Closed' THEN COUNT(DISTINCT [ACCOUNT NUMBER] for [PRODUCT],[STATUS]) 
ELSE NULL 
END