মাইএসকিএলে এটি করার একটি দুর্দান্ত-সহজ উপায় রয়েছে:
select *
from (select * from mytable order by `Group`, age desc, Person) x
group by `Group`
এটি কাজ করে কারণ মাইএসকিএল-এ আপনাকে অ-গ্রুপ-বাই কলামগুলি একত্রিত করার অনুমতি দেওয়া হয়নি , সেক্ষেত্রে মাইএসকিএল কেবল প্রথম সারিতে ফিরে আসে । সমাধানটি হ'ল প্রথমে ডেটা অর্ডার করা যাতে প্রতিটি গ্রুপের জন্য আপনি যে সারিটি চান তা প্রথমে, তারপরে কলামগুলির দ্বারা গ্রুপ করুন যার জন্য আপনি মান চান।
আপনি জটিল সাব-কোয়েরিগুলি এড়ান যা এগুলি সন্ধান করার চেষ্টা করে max()
এবং একই সাথে সর্বাধিক মান সহ যখন একাধিক থাকে তখন একাধিক সারি ফেরত দেওয়ার সমস্যাগুলি (অন্যান্য উত্তরগুলি যেমন করে থাকে)
দ্রষ্টব্য: এটি মাইএসকিএল-কেবলমাত্র সমাধান। আমি জানি অন্য সমস্ত ডাটাবেস "এসিডকিউল সিনট্যাক্স ত্রুটিটি" নন সমষ্টিযুক্ত কলামগুলি দলে দলে তালিকাভুক্ত নয় "বা অনুরূপ বার্তা সহ নিক্ষেপ করবে। কারণ এই সমাধান ব্যবহার করে অনথিভুক্ত আচরণ, আরো সতর্ক জাহির করা একটি পরীক্ষা অন্তর্ভুক্ত করতে চান যে এটা রয়ে কাজ মাইএসকিউএল এর ভবিষ্যতে সংস্করণ এই আচরণ পরিবর্তন করা উচিত নয়।
সংস্করণ 5.7 আপডেট:
সংস্করণ ৫.7 থেকে, sql-mode
সেটিংটি ONLY_FULL_GROUP_BY
ডিফল্টরূপে অন্তর্ভুক্ত রয়েছে , সুতরাং এই কাজটি করতে আপনার এই বিকল্পটি থাকা উচিত নয় (সার্ভারের জন্য এই সেটিংসটি সরিয়ে ফেলার জন্য বিকল্প ফাইলটি সম্পাদনা করুন)।