Cela n'a pas de sens d'inclure des colonnes qui ne font pas partie de la clause GROUP BY. Si vous avez un MIN(X), MAX(Y) dans la clause SELECT, de quelle ligne les autres colonnes (non groupées) doivent-elles provenir ?
Si votre version d'Oracle est assez récente, vous pouvez utiliser SUM - OVER() pour afficher la SOMME (groupée) sur chaque ligne de données.
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
Alternativement, vous devez créer un agrégat à partir du Site
, Desk
colonnes
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