لینکهای مفید برای شرکت در مسابقه:
میتوانید سوالهای خود را از بخش «سؤال بپرسید» مطرح کنید.
سوالات ۱ تا ۵ «الگوریتمی» است. (ارسال فقط با «Python» ،«C#» ،«JavaScript» ،«Node.js» و «Java» ممکن است.)
سوال ۶ام «گمگشته»، از تکنولوژی «دیتابیس MySQL» است.
سوال ۷ام «بررسی فضا»، از تکنولوژی «لینوکس» است.
کد شما باید روی آخرین نسخهی MySQL قابل اجرا باشد.
رضا در حال نوشتن برنامهای با نام گمگشته است. هدف این برنامه، کمک به افرادی است که در شهرهای مختلف راه گم میکنند. او پس از تلاشهای بسیار توانسته اطلاعات مکانهای ضروری برای این افراد را پیدا و آنها را ذخیره کند، اما برای استفاده از این دادهها در برنامه خود با مشکل مواجه شده است.
شما باید با نوشتن چند کوئری، مشکل او را حل کنید.
دادههای اولیه برای تست نمونه را از این لینک کنید.
ساختار جداول بهشرح زیر است:
places
: از این جدول برای نگهداری تمام اطلاعات مربوط به مکانها استفاده میشود.نام ستون | نوع | تعریف |
---|---|---|
id |
BIGINT |
آیدی |
address |
VARCHAR(255) |
آدرس مکان |
geometries
: این جدول وظیفه نگهداری نقاط جغرافیایی این مکانها را بر عهده دارد.نام ستون | نوع | تعریف |
---|---|---|
id |
BIGINT |
آیدی |
place_id |
BIGINT |
آیدی مکان |
point |
POINT(x, y) |
نقطه مورد مورد نظر برروی نقشه (با واحد متر) |
هر نقطه مربوط به یک محل است.
کوئریهای زیر را طوری بنویسید که خروجی خواستهشده بهدست آید:
(5728895.9321717, 4255004.0324245)
بهترتیب صعودی فاصله در قالب ستونهایی با نام address
و distance
فرودگاه
کمتر از ۲۰ کیلومتر فاصله دارند، بهترتیب صعودی فاصله در قالب ستونهایی با نام address
و distance
فرودگاه
در دادههای سیستم داوری وجود دارد.مترو
وجود دارد. فاصلهی همهی این نقاط را با یکدیگر برحسب متر بهترتیب صعودی فاصله بهدست آورید. ستونهای خروجی باید بهصورت زیر باشند:address1 | address2 | distance |
---|
اگر فاصلهی دو نقطه با یکدیگر برابر بود، آنها را ابتدا براساس مقدار address1
و سپس براساس مقدار address2
مرتب کنید.
پس از طراحی کوئریها، آنها را در قالب زیر در یک فایل با پسوند .sql
آپلود کنید.