Het heeft geen zin om kolommen op te nemen die geen deel uitmaken van de GROUP BY-clausule. Overweeg of u een MIN(X), MAX(Y) in de SELECT-component hebt, uit welke rij moeten andere kolommen (niet gegroepeerd) komen?
Als uw Oracle-versie recent genoeg is, kunt u SUM - OVER() gebruiken om de SUM (gegroepeerd) voor elke gegevensrij weer te geven.
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
Als alternatief moet u een aggregaat maken van de Site
, Desk
kolommen
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