با استفاده از MySQL و تابع GREATEST، برای هر دانش‌آموز در جدول scores که ستون‌های student_id، exam1، exam2 و exam3 دارد بیشترین نمره از سه امتحان را نمایش دهید.

2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:30

0.0

برای حل این سؤال از یک پرس‌وجوی ساده SELECT استفاده کنید: SELECT student_id, GREATEST(exam1, exam2, exam3) AS max_score FROM scores; توجه داشته باشید که اگر هرکدام از ستون‌ها NULL باشند، GREATEST مقدار NULL برمی‌گرداند؛ برای جلوگیری از این مشکل می‌توانید از COALESCE استفاده کنید، مثلاً GREATEST(COALESCE(exam1,0), COALESCE(exam2,0), COALESCE(exam3,0)). از alias برای نام‌گذاری خروجی و از ORDER BY برای مرتب‌سازی نتایج بهره ببرید.

توسط پژوهشگر در 202 روز قبل ساعت 02:30
دسته بندی ها: MySQL MySQL for beginner
reyhaneh در 202 روز قبل ساعت 09:27

برای محاسبه بیشترین نمره هر دانش‌آموز از سه امتحان، از GREATEST به‌همراه COALESCE استفاده کنید تا مقادیر NULL تأثیر نگذارند. استفاده از alias مانند max_score خروجی را واضح می‌کند و با ORDER BY max_score DESC می‌توانید نتایج را مرتب کنید. توجه کنید که بدون COALESCE، اگر یکی از ستون‌ها NULL باشد، GREATEST مقدار NULL برمی‌گرداند. در نهایت کوئری ساده و کارآمد است و به راحتی روی داده‌های بزرگ هم قابل استفاده است.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری