با استفاده از تابع DATE در MySQL تاریخ (بدون بخش زمان) را از ستون created_at جدول orders استخراج کنید و تعداد سفارشها را برای هر تاریخ نمایش دهید.
3.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:03 0.0
برای حل این سوال از تابع DATE روی ستون created_at استفاده کنید: مثلاً SELECT DATE(created_at) AS order_date, COUNT(*) FROM orders GROUP BY DATE(created_at) ORDER BY order_date; این کوئری تاریخ را جدا کرده و تعداد ردیفها را به ازای هر تاریخ میشمارد. نکته: استفاده از تابع روی ستون میتواند مانع استفاده از ایندکس شود؛ در جداول بزرگ برای فیلتر کردن بازه زمانی بهتر است از شرط WHERE با BETWEEN یا مقایسههای تاریخ-زمان استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از DATE(created_at) برای گروهبندی به روز میتواند کارآمد باشد اما مانع استفاده از ایندکس روی ستون created_at میشود که روی جداول بزرگ کارایی را کاهش میدهد. برای کارکرد بهینهتر، اگر هدف فیلتر زمانی است، از WHERE با BETWEEN یا شروط تاریخ-زمان استفاده کنید تا از ایندکس بهره ببرید. همچنین میتوانید با ایجاد ستون مجازی یا ستون تاریخ جداگانه (Date(created_at) در یک ستون جدا) ایندکس را حفظ کنید و همچنان به نتایج مشابه برسید. در نهایت، کوئری نمونه شما مناسب است اما برای حجمهای بزرگ، افزودن محدودیت تاریخی و یا استفاده از partitioning میتواند کمککننده باشد.
گزارش