برای پیدا کردن دانشآموزی که بیشترین تعداد امتیاز "ضعیف" را دارد و بر اساس تعداد آنها به ترتیب نزولی مرتب شدهاند، میتوانید از دستور SQL زیر استفاده کنید. ابتدا تعداد امتیازهای "ضعیف" را با فرض اینکه را برای هر دانشآموز محاسبه کنید و نتیجه را در یک زیردستور (subquery) ذخیره کنید. سپس، در دستور اصلی، دانشآموزی که بیشترین تعداد امتیاز "ضعیف" را دارد را با استفاده از عبارت WHERE و ORDER BY بازیابی کنید. در اینجا دستور SQL ارائه شده است:
WITH WeakCountCTE AS (
SELECT StudentID, COUNT(*) AS WeakCount
FROM YourTableName
WHERE Score = 'ضعیف'
GROUP BY StudentID
)
SELECT TOP 1 StudentID
FROM WeakCountCTE
ORDER BY WeakCount DESC;
لطفاً نام جدول و نام ستونها را با نامهای واقعی در پایگاه دادهتان جایگزین کنید.
البته به جای
WHERE Score = 'ضعیف'
هم میتونین از ID مربوط به رکورد ضعیف استفاده کنین به شکل زیر:
WITH WeakCountCTE AS (
SELECT StudentID, COUNT(*) AS WeakCount
FROM YourTableName
WHERE ScoreID = 3
GROUP BY StudentID
)
SELECT TOP 1 StudentID
FROM WeakCountCTE
ORDER BY WeakCount DESC;
نوشته شده توسط
korosh00
سلام
دانش آموزانی وجود دارند که با خوب متوسط ظعیف در عملکرد درسی براشون رکورد ثبت شده . میخواهیم دانش آموزی که بیشتر ضعیف رو گرفته پیدا کنیم .
مثلا ده مورد ضعیف گرفته یکی ۵ مورد ضعیف گرفته و ...