Det giver ikke mening at inkludere kolonner, der ikke er en del af GROUP BY-sætningen. Overvej, om du har en MIN(X), MAX(Y) i SELECT-sætningen, hvilken række skal andre kolonner (ikke grupperet) komme fra?
Hvis din Oracle-version er ny nok, kan du bruge SUM - OVER() til at vise SUM (grupperet) mod hver datarække.
SELECT
IMPORTID,Site,Desk,Region,RefObligor,
SUM(NOTIONAL) OVER(PARTITION BY IMPORTID, Region,RefObligor) AS SUM_NOTIONAL
From
Positions
Where
ID = :importID
Order BY
IMPORTID,Region,Site,Desk,RefObligor
Alternativt skal du lave en aggregering ud af Site
, Desk
kolonner
SELECT
IMPORTID,Region,Min(Site) Site, Min(Desk) Desk,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONAL
From
Positions
Where
ID = :importID
GROUP BY
IMPORTID, Region,RefObligor
Order BY
IMPORTID, Region,Min(Site),Min(Desk),RefObligor