با استفاده از تابع DAY() در MySQL، روز ماه را از ستون order_date جدول orders استخراج کنید و لیست روزها همراه با تعداد سفارش‌ها در هر روز نمایش دهید.

4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:37

0.0

برای حل این سوال از تابع DAY(order_date) استفاده کنید که عدد روز از 1 تا 31 را بازمی‌گرداند. مثلاً: SELECT DAY(order_date) AS day, COUNT(*) AS orders_count FROM orders GROUP BY day ORDER BY day; همچنین می‌توانید با WHERE DAY(order_date)=15 فیلتر کنید، اما برای کارایی بهتر در فیلترهای بازه‌ای از مقایسه تاریخ‌ها به‌جای اعمال تابع روی ستون استفاده کنید (مثلاً WHERE order_date BETWEEN '2025-11-01' AND '2025-11-30').

توسط پژوهشگر در 201 روز قبل ساعت 03:37
دسته بندی ها: MySQL MySQL for beginner
nima در 201 روز قبل ساعت 05:50

توجه کنید DAY(order_date) تنها روز ماه را برمی‌گرداند (۱ تا ۳۱) و GROUP BY DAY(order_date) داده‌ها را بر اساس روز محاسبه می‌کند، که ممکن است ماه‌ها را با هم ترکیب کند. اگر هدف شما گزارش روزانه برای هر ماه است، به‌جای DAY(order_date) باید YEAR(order_date)، MONTH(order_date) و DAY(order_date) را در GROUP BY استفاده کنید یا از DATE(order_date) به‌عنوان کلِ تاریخ استفاده کنید. برای فیلتر بازه‌ای کارآمدتر است که به جای فیلتر روی DAY(order_date) از بازه تاریخ‌ها استفاده کنید (WHERE order_date BETWEEN ...). همچنین بهتر است روی ستون order_date اندیس وجود داشته باشد تا پرس‌وجو سریع‌تر اجرا شود.

گزارش

1 پاسخ

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

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