Det är inte meningsfullt att inkludera kolumner som inte är en del av GROUP BY-satsen. Tänk på om du har ett MIN(X), MAX(Y) i SELECT-satsen, vilken rad ska andra kolumner (ej grupperade) komma från?
Om din Oracle-version är tillräckligt uppdaterad kan du använda SUM - OVER() för att visa SUMMA (grupperad) mot varje datarad.
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 måste du skapa en sammanställning av Site
, Desk
kolumner
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