Es ist nicht sinnvoll, Spalten einzuschließen, die nicht Teil der GROUP BY-Klausel sind. Überlegen Sie, ob Sie ein MIN(X), MAX(Y) in der SELECT-Klausel haben, aus welcher Zeile sollten andere Spalten (nicht gruppiert) stammen?
Wenn Ihre Oracle-Version aktuell genug ist, können Sie SUM - OVER() verwenden, um die SUM (gruppiert) für jede Datenzeile anzuzeigen.
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
Alternativ müssen Sie aus der Site
ein Aggregat erstellen , Desk
Spalten
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