سلام دوست عزیز😃👋

به مسابقه «انتخابی هکاتون فیتو» خوش آمدی!

هرگونه ارتباط با سایر شرکت‌کنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکت‌کنندگان مسابقه حذف می‌شوید. برای آشنایی بیشتر با قوانین شرکت در مسابقه این پیوند را مطالعه کنید.

در طول مسابقه، می‌توانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید.

موفق باشید 😉✌

پشت صحنه زمین


داده‌های اولیه برای تست نهایی را از این لینک دانلود کنید.
توضیحات مهم اولیه

در فایل world_cup.zip فایلی به اسم initial.sql وجود دارد.

با اجرای این فایل، همه جداول و سطرهایی که برای تست‌ نهایی مورد استفاده قرار می‌گیرد در پایگاه داده شما ایجاد می‌شوند. پیش از اجرای این فایل، حتما پایگاه داده‌ای با اسم دلخواه ایجاد کنید و در ابتدای این فایل، کد use YOUR_DB_NAME; را وارد کنید.

کوئری‌های شما باید روی آخرین نسخه‌ی MySQL قابل اجرا باشند.

برای چک کردن سینتکس کد SQL خود می‌توانید از این وبسایت کمک بگیرید.

این مسئله شامل ۶ بخش است که در ادامه آمده است.

1) سوال اول🔗

اسم بازیکنانی که دست‌کم یک بار جایزهٔ آقای گلی را گرفته‌اند را همراه با تعداد دفعات دریافت جایزه بیابید. ردیف‌ها باید مرتب‌شده نزولی بر اساس تعداد دفعات و صعودی بر اساس شناسهٔ بازیکن باشند.

توضیحات در مورد Query اول

سطر اول خروجی شما باید به شکل زیر باشد:

family_name name times_won
Lineker Gary 1

2) سوال دوم🔗

سینا قصد دارد عملکرد کشورها در تاریخ جام جهانی فوتبال را بر اساس یک سیستم امتیازدهی خاص ارزیابی کند.

طبق این سیستم، به تیم قهرمان هر دوره ۴ امتیاز، تیم نایب‌قهرمان ۳ امتیاز، تیم سوم ۲ امتیاز و تیم چهارم ۱ امتیاز دریافت می‌کند. سینا مجموع امتیاز هر کشور را در تمامی دوره‌های جام جهانی محاسبه کرده و در پایان، فهرستی از ۱۰ کشور برتر از لحاظ مجموع امتیاز ارائه می‌دهد.

هم‌چنین او تأکید دارد که نتایج "آلمان غربی" (West Germany) باید با "آلمان" (Germany) یکی در نظر گرفته شود.

خروجی مورد انتظار، جدولی شامل دو ستون با نام‌های "team_name" و "total_score" است که در آن کشورها بر اساس مجموع امتیاز به صورت نزولی مرتب شده‌اند. در صورتی که دو یا چند کشور امتیاز برابر داشته باشند، اولویت با ترتیب حروف الفبای نام کشور به صورت صعودی است. جدول نهایی باید دقیقاً شامل ۱۰ ردیف باشد.

توضیحات در مورد Query دوم

2 سطر اول خروجی شما باید به شکل زیر باشد:

team_name total_score
Germany 37
Brazil 32

3) سوال سوم🔗

پنج تورنمنت با بیش‌ترین تعداد کارت قرمز را به همراه سال برگزاری نمایش دهید. ردیف‌ها باید مرتب‌شده نزولی بر اساس تعداد کارت قرمز و صعودی بر اساس شناسهٔ تورنمنت باشند.

توضیحات در مورد Query سوم

2 سطر اول خروجی شما باید به شکل زیر باشد:

tournament_id tournament_year red_card_count
WC-1998 1998 18

4) سوال چهارم🔗

برای تحلیل عملکرد مربیان در رقابت‌های جام جهانی، نیاز است فهرستی از ۱۱ مربی برتر از نظر مجموع امتیازات کسب‌شده تهیه شود. در این ارزیابی، هر برد معادل ۳ امتیاز، هر تساوی معادل ۱ امتیاز، و باخت بدون امتیاز در نظر گرفته می‌شود. کوئری‌ای بنویسید که بر اساس این معیار، مربیانی را که بیش‌ترین امتیاز را در تاریخ جام جهانی کسب کرده‌اند، شناسایی کند. خروجی باید شامل دو ستون زیر باشد:

  • full_name: نام کامل مربی که از ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.

  • total_score: مجموع امتیازات کسب‌شده توسط مربی.

ترتیب نتایج باید به صورت نزولی بر اساس total_score و در صورت برابر بودن امتیاز، به صورت نزولی بر اساس full_name باشد. دقت کنید که تنها ۱۱ نفر اول باید در خروجی نمایش داده شوند.

توضیحات در مورد Query چهارم

3 سطر اول خروجی شما باید به شکل زیر باشد:

full_name total_score
Helmut Schön 53
Luiz Felipe Scolari 49
Mário Zagallo 44

5) سوال پنجم🔗

هر تیم در مرحلهٔ حذفی چند گل زده است؟ فقط تیم‌هایی که مجموع گل‌هایشان در این مرحله بیش از ۱۰ باشد را نمایش دهید و بر اساس گل، نزولی و در صورتی که تعداد گل دو تیم مساوی بود بر اساس شناسهٔ تیم به صورت صعودی مرتب کنید.

توضیحات در مورد Query پنجم

3 سطر اول خروجی شما باید به شکل زیر باشد:

time_id total_goals
T-09 95
T-28 65
T-39 59

6) سوال ششم🔗

هدف این بخش، استخراج فهرستی از ۲۰ بازیکن با بیش‌ترین سن، در زمان حضور در یک مسابقه است. سن بازیکنان باید بر حسب روز محاسبه شود.

کوئری‌ای بنویسید که اطلاعات زیر را برای این بازیکنان استخراج کند:

  • full_name: نام کامل بازیکن که با ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.

  • match_name: نام مسابقه‌ای که بازیکن در آن به میدان رفته و مشخص‌کننده دو تیم حاضر است.

  • team_name: نام تیم ملی بازیکن.

  • tournament_year: سال برگزاری تورنمنت.

  • age: سن بازیکن بر حسب روز در زمان انجام مسابقه.

نتایج باید به صورت نزولی بر اساس ستون age مرتب شوند و فقط ۲۰ رکورد اول نمایش داده شود. توجه داشته باشید که یک بازیکن ممکن است بیش از یک بار در این فهرست ظاهر شود.

توضیحات در مورد Query ششم

3 سطر اول خروجی شما باید به شکل زیر باشد:

full_name match_name team_name tournament_year age
Essam El Hadary Saudi Arabia v Egypt Egypt 2018 16597
Faryd Mondragón Japan v Colombia Colombia 2014 15709
Roger Milla Russia v Cameroon Cameroon 1994 15379

روش پیاده‌سازی🔗

در یک فایل با نام code.sql کد خود را قرار دهید و آن را فشرده (zip ) کنید و در سایت بارگذاری نمایید. کد شما باید به صورت زیر باشد(نام فایل zip مهم نیست).


-- Section1

   your first query here

-- Section2

   your second query here

-- Section3

   your third query here

-- Section4

   your fourth query here

-- Section5

   your fifth query here

-- Section6

   your sixth query here
SQL
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.