结果集中的计数列
Count column in result set
我的结果集如下
enter image description here
我需要做的是计算 acct_nmbr 在结果集中的次数以获得类似的结果。
最终目标是使用 having 子句摆脱任何出现多次的帐户。
enter image description here
我用过:
select distinct Obj_id, acct_nmbr as Acct_nmbrr, datee ,count (acct_nmbrr) as "count"
但它没有返回正确的结果。我只想计算结果集。
已更新 - 我在 oracle 上试过了,得到了你想要的结果。您可能需要对 terradata 进行一些调整,我对此并不熟悉。基本上,您为聚合创建一个 in-line 视图,然后在 acctnmbr 上加入主视图 table
create table test (objid number, acctnmbr number, dateVal date );
insert into test values(1,111,sysdate);
insert into test values(2,111,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
的行。
我的结果集如下 enter image description here
我需要做的是计算 acct_nmbr 在结果集中的次数以获得类似的结果。 最终目标是使用 having 子句摆脱任何出现多次的帐户。
enter image description here
我用过:
select distinct Obj_id, acct_nmbr as Acct_nmbrr, datee ,count (acct_nmbrr) as "count"
但它没有返回正确的结果。我只想计算结果集。
已更新 - 我在 oracle 上试过了,得到了你想要的结果。您可能需要对 terradata 进行一些调整,我对此并不熟悉。基本上,您为聚合创建一个 in-line 视图,然后在 acctnmbr 上加入主视图 table
create table test (objid number, acctnmbr number, dateVal date );
insert into test values(1,111,sysdate);
insert into test values(2,111,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
的行。