2015-09-07 114 views
-3

我有以下数据集:PROC SQL SAS编程

Name Address   Bank_Account Ph_NO IP_Address Chargeoff 
AJ 12 ABC Street  1234  369  12.12.34   0 
CK 12 ABC Street  1234  450  12.12.34   1 
DN 15 JMP Street  3431  569  13.8.09   1 
MO 39 link street 8421  450  05.67.89   1 
LN 12 ABC Street  1234  340  14.75.06   1 
ST 15 JMP Street  8421  569  13.8.09   0` 

使用这个数据集我想创建SAS以下观点:

Name CountOFAddr CountBankacct CountofPhone CountOfIP CountCharegeoff 
    AJ  3    3   1   2    2 
    CK  3    3   2   2    3 
    DN  2    1   2   2    1 
    MO  1    2   2   1    2 
    LN  3    3   1   1    2 
    ST  2    2   2   2    2 

输出变量表示为如下:

-CountOfAddr:对于AJ countOFAddr是3,这意味着AJ共享其地址与自身,CK和LN

-CountBankAcct:对于BankAcct的MO计数为2,这意味着MO共享其银行帐户号码与自身和ST类似于CountofPhone和CountOfIP的变量。

-CountChargeoff:这一个是有点棘手,它基本上意味着AJ链接到CK和LN通过地址......无一不CK和LN已被控关闭,因此对于AJ的countChargeoff为2

对于CKcountChargeOff3因为它与自己的联系,通过MO银行账户,并通过LN/AJ地址...所以总chargeoffCK's网络是CK+CO计数的LNMO+CO计数AJ+CO计数3(CO计数)

我目前在金融服务公司担任风险分析师,此问题的代码可帮助我们显着减少欺诈性账户的资金来源。

谢谢。

+0

你知道如何在SAS中创建视图吗?或者只是需要SQL的帮助? '关闭'字段不清楚 –

+0

是的,关闭是没有意义的。其他所有的东西都是一个简单的'select count(*)from ... where bank_account = ...'例如 – Blindy

+0

要坚持SO规则,你应该发布你已经试过的东西,这不是一个代码写入服务。 – Reeza

回答

1

SQL Fiddle Demo

SELECT 
    Name, 
    (SELECT Count(Address) 
    FROM dataset d2 
    WHERE d1.Address = d2.Address 
    ) CountOFAddr, 

    (SELECT Count(Bank_Account) 
    FROM dataset d2 
    WHERE d1.Bank_Account = d2.Bank_Account 
    ) CountBankacct, 

    (SELECT Count(Ph_NO) 
    FROM dataset d2 
    WHERE d1.Ph_NO = d2.Ph_NO 
    ) CountofPhone, 

    (SELECT Count(IP_Address) 
    FROM dataset d2 
    WHERE d1.IP_Address = d2.IP_Address 
    ) CountOfIP, 

    (SELECT count(d2.Chargeoff) 
    FROM dataset d2 
    WHERE d1.name <> d2.name 
     and ( d1.Address = d2.Address 
      or d1.Bank_Account = d2.Bank_Account 
      or d1.Ph_NO = d2.Ph_NO 
      or d1.IP_Address = d2.IP_Address 
      ) 
    ) CountCharegeoff   
FROM dataset d1 

我包括关机充电计算。

将所有d2 <> d1.name带到哪里有任何共同的领域。然后数一数。

+0

我包括计算费用。并包括小提琴 –

+0

为什么downvote? –

+1

我没有做倒票,但我想这是因为没有解释和可能,因为OP没有发布任何尝试,所以这不是一个有效的SO应该被回答。 – Reeza