sql - How to remove the column in group by -
i working on query want mg.actid
appear select
column not within group by
because not listing results want. group structure getting spoiled if have in group by
. please let me know how retain in select column , remove group by
.
want group by
sr.rsrcid
, sr.frsntnm
, sr.lstm
query :
select (sr.lstnm+ ', '+ sr.frstnm) 'employee name', mg.actid goalid, sr.rsrcid empid, count(mg.actid) '# goals', sum(case when prntactid != '' 1 else 0 end) '# aligned' tm.sresource sr left outer join tm.matrixgoal mg on sr.rsrcid = mg.rsrcid , mg.delflg = 0 mg.activeflg = 1 group sr.rsrcid,sr.lstnm,sr.frstnm order sr.lstnm,sr.frstnm
one way use 'partition by' clause in aggregate functions (like sum , count), , select distinct rows data set. effectively, move group statement partition each aggregate, this:
select distinct (sr.lstnm+ ', '+ sr.frstnm) 'employee name', mg.actid goalid, sr.rsrcid empid, count(mg.actid) on (partition sr.rsrcid,sr.lstnm,sr.frstnm) '# goals', sum(case when prntactid != '' 1 else 0 end) on (partition sr.rsrcid,sr.lstnm,sr.frstnm) '# aligned' tm.sresource sr left outer join tm.matrixgoal mg on sr.rsrcid = mg.rsrcid , mg.delflg = 0 mg.activeflg = 1 order sr.lstnm,sr.frstnm
Comments
Post a Comment