با استفاده از تابع SUM در MySQL مجموع مبلغ سفارشات (ستون amount) را برای هر مشتری (ستون customer_id) از جدول Orders محاسبه کن و نتایج را به‌صورت نزولی بر اساس مجموع نمایش بده.

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

0.0

برای این سوال از تابع تجمیعی SUM(amount) همراه با GROUP BY customer_id استفاده کن و ستون محاسبه‌شده را با یک alias مثل total_sales نام‌گذاری کن؛ در صورت نیاز می‌توانی با WHERE سفارش‌ها را بر اساس بازه زمانی (مثلاً order_date) فیلتر کنی و برای جلوگیری از تاثیر NULL از COALESCE(amount, 0) بهره ببری. در پایان نتیجه را با ORDER BY total_sales DESC مرتب کن تا مشتریان با بیشترین مجموع در بالا قرار گیرند.

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

نکته مفید این است که از SUM(COALESCE(amount,0)) استفاده کنی تا مقادیر NULL در محاسبه تاثیری نداشته باشند. اگر می‌خواهی بازهٔ زمانی را فیلتر کنی، شرط WHERE را قبل از GROUP BY اضافه کن (مثلاً order_date BETWEEN ...). سپس نام‌گذاری با AS total_sales انجام بده تا بتوانی در ORDER BY از total_sales استفاده کنی و نتایج را DESC مرتب کنی. همچنین برای کارایی، مطمئن شو که ایندکس مناسبی روی (customer_id, order_date) وجود دارد تا گروه‌بندی سریع‌تر انجام شود.

گزارش

1 پاسخ

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

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