کد شما باید روی آخرین نسخهی 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
آپلود کنید.
-- Section1
Your first query here
-- Section2
Your second query here
-- Section3
Your third query here
ارسال پاسخ برای این سؤال