ऐसे कॉलम शामिल करने का कोई मतलब नहीं है जो ग्रुप बाय क्लॉज का हिस्सा नहीं हैं। विचार करें कि यदि आपके पास SELECT क्लॉज में MIN(X), MAX(Y) है, तो अन्य कॉलम (समूहीकृत नहीं) किस पंक्ति से आने चाहिए?
यदि आपका Oracle संस्करण हाल ही में पर्याप्त है, तो आप प्रत्येक डेटा पंक्ति के विरुद्ध SUM (समूहीकृत) दिखाने के लिए SUM - OVER() का उपयोग कर सकते हैं।
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
वैकल्पिक रूप से, आपको Site
. से एक समुच्चय बनाना होगा , Desk
कॉलम
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