Non ha senso includere colonne che non fanno parte della clausola GROUP BY. Considera se hai un MIN(X), MAX(Y) nella clausola SELECT, da quale riga dovrebbero provenire le altre colonne (non raggruppate)?
Se la tua versione di Oracle è abbastanza recente, puoi utilizzare SUM - OVER() per mostrare il SUM (raggruppato) su ogni riga di dati.
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
In alternativa, devi creare un aggregato dal Site
, Desk
colonne
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