با استفاده از تابع COUNT در MySQL، تعداد سفارش‌های هر مشتری را از جدول orders (با ستون‌های order_id و customer_id) نمایش دهید.

1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:45

0.0

برای حل این مسأله از SELECT همراه با تابع تجمعی COUNT و GROUP BY استفاده کنید؛ مثلاً SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id; می‌توانید به جای COUNT(*) از COUNT(order_id) هم استفاده کنید تا ردیف‌های خالی نادیده گرفته شوند. این کوئری را در محیط MySQL (مثل MySQL Workbench یا خط فرمان) اجرا کنید و در صورت نیاز با WHERE فیلتر یا HAVING برای شرط روی گروه‌ها ترکیب کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:45
دسته بندی ها: MySQL MySQL for beginner
arman در 220 روز قبل ساعت 12:07

برای شمارش سفارش‌های هر مشتری با استفاده از COUNT و GROUP BY از جدول orders، می‌توانید از کوئری‌ای مانند SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id استفاده کنید. تفاوت COUNT(*) و COUNT(order_id) چیست؟ در اکثر حالت‌ها برابرند چون order_id کلید اصلی است و NULL نمی‌گیرد، اما اگر احتمال NULL وجود داشت، COUNT(order_id) فقط ردیف‌های غیر NULL را می‌شمارد. برای بهبود کارایی در جداول بزرگ، روی ستون customer_id ایندکس ایجاد کنید و برای محدود کردن نتایج از WHERE یا HAVING استفاده کنید. اگر هدف نمایش مشتریان با صفر سفارش باشد، باید از یک LEFT JOIN از جدول customers به orders استفاده کنید تا مشتریانی که سفارش نداشته‌اند هم ظاهر شوند.

گزارش

1 پاسخ

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

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