کوئریهای شما باید روی MySQL قابل اجرا باشند.
یکی از تیمهای فنی گروه اسنپ قصد دارد برخی از کوئریهای خود که مربوط به بخش سفارشها هستند را با استفاده از ایندکسها سریعتر کند. به آنها در این کار کمک کنید.
جزئیات پروژه
دادههای سؤال را از این لینک دانلود کنید.
جدولی با نام orders
برای نگهداری اطلاعات سفارشها موجود است که ساختار آن به شرح زیر است:
نام ستون | نوع | تعریف |
---|---|---|
id |
BIGINT(20) |
شناسهی سفارش |
user_id |
BIGINT(20) |
شناسهی کاربر سفارشدهنده |
total |
DECIMAL(10,2) |
مبلغ سفارش |
created_at |
DATETIME |
زمان ثبت سفارش |
مطلوبات
کوئریهای SQL خواستهشده از شما، موارد زیر است:
- کوئری ساخت ایندکس جهت بهینهسازی حداکثری سرعت محاسبهی مجموع مبلغ سفارشها در سال ۲۰۲۰:
SELECT SUM(total)
FROM orders
WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59'
- کوئری ساخت ایندکس جهت بهینهسازی حداکثری سرعت محاسبهی مجموع مبلغ سفارشهای کاربری با شناسهی ۳۴۵ در سال ۲۰۲۰:
SELECT SUM(total)
FROM orders
WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59'
AND user_id = 345
نکته: تعداد کاربران بسیار بیشتر از حداکثر تعداد سفارشهای یک کاربر است.
- مجموع مبلغ سفارشها به ازای هر روز، بهترتیب صعودی تاریخ؛ نتیجه بهترتیب شامل ستون تاریخ و ستون مجموع مبلغ سفارشها باشد. تاریخ باید به فرمت
Y-m-d
باشد. همچنین، تاریخهایی بین تاریخهای موجود در جدول که در آنها سفارشی ثبت نشده است نیز باید در نتیجه موجود باشند. نام ستونهای خروجی اهمیت ندارد.
نکته: هر کوئری نمرهای جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بزنید، کوئریهایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید.
آنچه باید آپلود کنید
پس از طراحی کوئریها، کد خود را در قالب زیر در یک فایل با پسوند .sql
آپلود کنید.
-- Section1
Your first query here
-- Section2
Your second query here
-- Section3
Your third query here
ارسال پاسخ برای این سؤال