मेरे पास एक टेबल है जो इस कॉलर 'मेकर' की तरह दिखती है
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
और मैं प्रत्येक cname के लिए अधिकतम avg का चयन करना चाहता हूं।
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
लेकिन मुझे एक त्रुटि मिलेगी,
ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
तो मैं ऐसा करता हूं
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
हालाँकि, यह इरादा परिणाम नहीं देगा, और नीचे गलत आउटपुट दिखाया गया है।
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
वास्तविक परिणाम होना चाहिए
cname | wmname | max
--------+--------+------------------------
canada | zoro | 2.0000000000000000
spain | usopp | 5.0000000000000000
मैं इस मुद्दे को ठीक करने के बारे में कैसे जा सकता हूं?
नोट: यह तालिका पिछले ऑपरेशन से निर्मित एक दृश्य है।
wmname="usopp"
अपेक्षित है और उदाहरण के लिए नहीं wmname="luffy"
?