计算结果集中的列

问题描述

我的结果集如下 enter image description here

我需要做的是计算acct_nmbr在结果集中的次数,以获得类似的结果。 最终目标是使用hading子句消除出现多次的任何帐户。

enter image description here

我用过:

select distinct Obj_id,acct_nmbr as Acct_nmbrr,datee,count (acct_nmbrr) as "count"

,但未返回正确的结果。我只想计算结果集。

解决方法

更新-我在oracle上尝试过此操作,并获得所需的结果。您可能需要对terradata进行一些调整,我对此并不熟悉。基本上,您为聚合创建一个嵌入式视图,然后将acctnmbr与主表连接起来

create table test (objid number,acctnmbr number,dateVal date );
insert into test values(1,111,sysdate);
insert into test values(2,sysdate+1);
insert into test values(199,222,sysdate);


select objid,test.acctnmbr,dateval,cntview.cnt
from test,(
    select acctnmbr,count(*) cnt
    from test
    group by acctnmbr
) cntview
where cntview.acctnmbr = test.acctnmbr
,

我的想法是使用row number

SELECT ObjID,AcctNmbr,Date,ROW_NUMBER() OVER (PARTITION BY AcctNmbr ORDER BY ObjID) 
FROM sometable  

然后根据您的逻辑,用row_number > 1删除行。