کد شما باید روی نسخهی استاندارد MySQL قابل اجرا باشد.
جدولی با نام orders
برای نگهداری اطلاعات سفارشها موجود است که ساختار آن بهشرح زیر است:
نام | نوع | تعریف | ملاحضات |
---|---|---|---|
id | int | شناسهی سفارش | primary key |
customer_id | int | شناسهی مشتری | foreign key customers |
status | enum | وضعیت سفارش که یکی از حالات در انتظار پرداخت، در انبار، کنسلشده و تحویلدادهشده است | یکی از مقادیر wait_payment، warehouse، canceled و sent میباشد |
created_at | date | تاریخ ثبت سفارش |
همچنین جدولی با نام customers
برای نگهداری اطلاعات کاربران با ساختار زیر داریم:
نام | نوع | تعریف | ملاحظات |
---|---|---|---|
id | int | شناسهی مشتری | primary key |
name | varchar | نام مشتری | |
is_blocked | bool | آیا فعالیت مشتری در سایت ممنوع شده است؟ | Nullable، مقدار ۱ برای مشتریهای بلاکشده است و مقدار صفر یا null برای مشتری عادی است |
مطلوبات
کوئریهای SQL خواستهشده از شما موارد زیر است (هر کوئری نمرهای جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بزنید، کوئریهایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید):
بخش ۱) کوئریای بنویسید که لیست تمامی سفارشاتی که در انبار هستند را برگرداند. خروجی باید شامل یک جدول با یک ستون order_id
باشد که بهترتیب شناسهی سفارش و بهصورت نزولی مرتب شدهاند.
بخش ۲) کوئریای بنویسید که شناسه و نام تمامی مشتریانی که تا به حال سفارشی ثبت نکردهاند را برگرداند. خروجی باید شامل دو ستون با نامهای customer_id
و customer_name
باشد که بهترتیبِ نام مشتری و بهصورت صعودی مرتب شدهاند.
بخش ۳) نرخ سفارشات کنسلشده برابر است با تعداد تمامی سفارشات کنسلشده برای مشتریان عادی (بلاکنشده) تقسیم بر تعداد سفارشات برای مشتریان عادی. کوئریای بنویسید که نرخ کنسل شدن را در هر روز تا دو رقم اعشار محاسبه کند. خروجی باید شامل یک جدول با دو ستون با نامهای date
و cancellation_rate
باشد. توجه کنید که در جدول خروجی تنها باید شامل تاریخهایی که در آنها سفارش ثبت شده است باشد. برای نمایش نرخ سفارشات باید عدد محاسبهشده را در ۱۰۰ ضرب کرده و با استفاده از تابع format
تا دو رقم اعشار آن را گرد کنید تا بهصورت درصد قابل نمایش باشد.
آنچه باید آپلود کنید
کد خود را در قالب زیر، در یک فایل با نام code.sql
قرار دهید و آن را ارسال کنید:
-- Section1
your first query here
-- Section2
your second query here
-- Section3
your third query here
ارسال پاسخ برای این سؤال