Sql 结果集中的计数列

Sql 结果集中的计数列,sql,count,resultset,Sql,Count,Resultset,我有一个结果集,如下所示 我需要做的是计算acct\u nmbr在结果集中的次数,以获得类似的结果。 最终目标是使用having子句来删除任何出现多次的帐户 我使用了: select distinct Obj_id, acct_nmbr as Acct_nmbrr, datee ,count (acct_nmbrr) as "count" 但它没有返回正确的结果。我只想计算结果集。已更新-我在oracle上尝试了这个方法,并得到了您想要的结果。您可能需要对terrada

我有一个结果集,如下所示

我需要做的是计算acct\u nmbr在结果集中的次数,以获得类似的结果。 最终目标是使用having子句来删除任何出现多次的帐户

我使用了:

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,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

更新-我在oracle上尝试了此功能,并获得了您想要的结果。您可能需要对terradata进行一些调整,我不熟悉它。基本上,您为聚合创建一个内嵌视图,然后在acctnmbr上与主表联接

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
我的想法是使用

然后根据您的逻辑删除行号为1的行。

我的想法是使用


然后根据您的逻辑删除行号为1的行。

问题是同一帐号将有多个obj id使distint不起作用/groupby不起作用。我正在使用Terradata。。。很抱歉遗漏了这一点。问题是,同一帐号将有多个obj id,使得distint不起作用/groupby不起作用。我正在使用Terradata。。。很抱歉遗漏了这一点。如何执行查询?您正在混合常规列和聚合列,而没有
分组依据
如何执行查询?您正在混合常规列和聚合列,而没有一个由@kyleisapenguin组成的组。嗨,我很高兴它能工作。你能把我的回答标为“接受”吗?i@kyleisapenguin嗨,我很高兴它能工作。你能把我的回答标为“接受”吗