برای جدول orders که ستون order_date دارد، یک پرسوجو بنویسید که تعداد سفارشها را بر اساس روز هفته با استفاده از تابع DAYOFWEEK نشان دهد و نتایج را بر اساس شماره روز هفته مرتب کند.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:46 0.0
در MySQL از تابع DAYOFWEEK(order_date) برای گرفتن شماره روز هفته استفاده کنید (خروجی 1=Sunday تا 7=Saturday). معمولاً از SELECT DAYOFWEEK(order_date) AS weekday, COUNT(*) AS orders_count FROM orders GROUP BY weekday ORDER BY weekday استفاده میشود. اگر خواستید نام روز را نشان دهید از DAYNAME یا CASE کمک بگیرید و برای شروع هفته از شنبه به دوشنبه میتوانید از تبدیل ((DAYOFWEEK(order_date)+5)%7)+1 استفاده کنید؛ این روشها نمونهای از کاربرد توابع و عبارتها در پرسوجوهای دادهمحور هستند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی اینکه DAYOFWEEK(order_date) خروجی 1 تا 7 میدهد، با 1 برابر با یکشنبه است. برای شروع هفته از شنبه میتوانید با تبدیل ((DAYOFWEEK(order_date)+5)%7)+1، شماره روز را بازتعریف کنید تا ترتیب مطلوب به دست آید. برای نمایش نام روز از DAYNAME(order_date) یا استفاده از CASE بهره بگیرید و در GROUP BY از همان محاسبه استفاده کنید. همچنین مطمئن شوید که ORDER BY به همان alias یا بیان محاسبهشده ارجاع دهد تا نتایج به ترتیب روزهای هفته باشند.
گزارش