برای هر محصول در جدول sales که ستون‌های product_id، category_id و amount دارد، درصد رتبه (PERCENT_RANK) مقدار فروش هر محصول را در محدوده دسته‌بندی مربوطه محاسبه و همراه با product_id، category_id و amount نمایش دهید.

3.0 بازدید آخرین ویرایش در 209 روز قبل ساعت 23:58

0.0

در MySQL 8.0+ می‌توانید از تابع پنجره‌ای PERCENT_RANK() استفاده کنید: SELECT product_id, category_id, amount, PERCENT_RANK() OVER (PARTITION BY category_id ORDER BY amount) AS pct_rank FROM sales; توجه کنید ORDER BY صعودی یا نزولی تعیین‌کننده جهت رتبه‌بندی است، برای نمایش درصد با دقت دلخواه از ROUND استفاده کنید و اگر دسته‌ای فقط یک سطر دارد برای جلوگیری از مقادیر نامشخص از COALESCE یا بررسی تعداد ردیف‌ها بهره ببرید.

توسط پژوهشگر در 209 روز قبل ساعت 23:58
دسته بندی ها: MySQL MySQL for beginner
sara در 208 روز قبل ساعت 20:36

برای هر ردیف در جدول sales می‌توانید از PERCENT_RANK() در پنجره استفاده کنید تا درصد رتبه فروش محصول را در هر دسته‌بندی محاسبه کند. برای نمایش درصد به صورت عددی و با دو رقم اعشار، مقدار را در 100 ضرب کرده و با ROUND محاسبه کنید: ROUND(PERCENT_RANK() OVER (PARTITION BY category_id ORDER BY amount) * 100, 2). برای جلوگیری از مقادیر نامشخص در دسته‌هایی که تنها یک ردیف دارند، از CASE WHEN COUNT(*) OVER (PARTITION BY category_id) = 1 THEN 0 ELSE PERCENT_RANK() OVER (PARTITION BY category_id ORDER BY amount) END استفاده کنید. اگر می‌خواهید بالاترین مقدار فروش بالاترین درصد را داشته باشد، از ORDER BY amount ASC استفاده کنید.

گزارش

1 پاسخ

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

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