برای جدول sales با ستونهای id و amount، رتبه درصدی (percent rank) هر رکورد بر اساس مقدار amount را با استفاده از تابع PERCENT_RANK() محاسبه کرده و id، amount و درصد را نمایش دهید.
4.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:17 0.0
برای حل این سوال از تابع پنجرهای PERCENT_RANK() در MySQL 8 استفاده کنید: SELECT id, amount, PERCENT_RANK() OVER (ORDER BY amount) AS pct_rank FROM sales; میتوانید ORDER BY را به DESC تغییر دهید تا رتبهبندی بر اساس مقادیر بزرگتر باشد، یا با PARTITION BY یک گروهبندی مشخص را اعمال کنید. برای نمایش به صورت درصد، نتیجه را در 100 ضرب کرده و با ROUND آن را گرد کنید (مثلاً ROUND(PERCENT_RANK() OVER (ORDER BY amount) * 100, 2)). توجه کنید هنگام وجود مقادیر برابر یا تنها یک ردیف خروجی ممکن است مقادیر 0 یا مقادیر مشابه دیده شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای محاسبه درصدی بودن رتبه مقدار amount در جدول sales از PERCENT_RANK() OVER (ORDER BY amount) استفاده کنید و نتیجه را ضربدر 100 با ROUND گرد کنید. اگر میخواهید بزرگترین مقدارها اول باشند، ORDER BY amount DESC را به کار ببرید. مقادیر برابر باعث ایجاد رتبههای مساوی میشوند و در مواردی با تنها یک ردیف خروجی ممکن است مقدار 0 یا NULL مشاهده شود. در صورت نیاز به گروهبندی، از PARTITION BY برای مشخص کردن دستهها استفاده کنید.
گزارش