سلام دوست عزیز😃👋
به مسابقه «انتخابی هکاتون فیتو» خوش آمدی!
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید. برای آشنایی بیشتر با قوانین شرکت در مسابقه این پیوند را مطالعه کنید.
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید.
موفق باشید 😉✌
دادههای اولیه برای تست نهایی را از این لینک دانلود کنید. |
---|
در فایل world_cup.zip فایلی به اسم initial.sql وجود دارد.
با اجرای این فایل، همه جداول و سطرهایی که برای تست نهایی مورد استفاده قرار میگیرد در پایگاه داده شما ایجاد میشوند. پیش از اجرای این فایل، حتما پایگاه دادهای با اسم دلخواه ایجاد کنید و در ابتدای این فایل، کد use YOUR_DB_NAME;
را وارد کنید.
کوئریهای شما باید روی آخرین نسخهی MySQL قابل اجرا باشند.
برای چک کردن سینتکس کد SQL خود میتوانید از این وبسایت کمک بگیرید.
این مسئله شامل ۶ بخش است که در ادامه آمده است.
اسم بازیکنانی که دستکم یک بار جایزهٔ آقای گلی را گرفتهاند را همراه با تعداد دفعات دریافت جایزه بیابید. ردیفها باید مرتبشده نزولی بر اساس تعداد دفعات و صعودی بر اساس شناسهٔ بازیکن باشند.
سطر اول خروجی شما باید به شکل زیر باشد:
family_name | name | times_won |
---|---|---|
Lineker | Gary | 1 |
سینا قصد دارد عملکرد کشورها در تاریخ جام جهانی فوتبال را بر اساس یک سیستم امتیازدهی خاص ارزیابی کند.
طبق این سیستم، به تیم قهرمان هر دوره ۴ امتیاز، تیم نایبقهرمان ۳ امتیاز، تیم سوم ۲ امتیاز و تیم چهارم ۱ امتیاز دریافت میکند. سینا مجموع امتیاز هر کشور را در تمامی دورههای جام جهانی محاسبه کرده و در پایان، فهرستی از ۱۰ کشور برتر از لحاظ مجموع امتیاز ارائه میدهد.
همچنین او تأکید دارد که نتایج "آلمان غربی" (West Germany) باید با "آلمان" (Germany) یکی در نظر گرفته شود.
خروجی مورد انتظار، جدولی شامل دو ستون با نامهای "team_name" و "total_score" است که در آن کشورها بر اساس مجموع امتیاز به صورت نزولی مرتب شدهاند. در صورتی که دو یا چند کشور امتیاز برابر داشته باشند، اولویت با ترتیب حروف الفبای نام کشور به صورت صعودی است. جدول نهایی باید دقیقاً شامل ۱۰ ردیف باشد.
2 سطر اول خروجی شما باید به شکل زیر باشد:
team_name | total_score |
---|---|
Germany | 37 |
Brazil | 32 |
پنج تورنمنت با بیشترین تعداد کارت قرمز را به همراه سال برگزاری نمایش دهید. ردیفها باید مرتبشده نزولی بر اساس تعداد کارت قرمز و صعودی بر اساس شناسهٔ تورنمنت باشند.
2 سطر اول خروجی شما باید به شکل زیر باشد:
tournament_id | tournament_year | red_card_count |
---|---|---|
WC-1998 | 1998 | 18 |
برای تحلیل عملکرد مربیان در رقابتهای جام جهانی، نیاز است فهرستی از ۱۱ مربی برتر از نظر مجموع امتیازات کسبشده تهیه شود. در این ارزیابی، هر برد معادل ۳ امتیاز، هر تساوی معادل ۱ امتیاز، و باخت بدون امتیاز در نظر گرفته میشود. کوئریای بنویسید که بر اساس این معیار، مربیانی را که بیشترین امتیاز را در تاریخ جام جهانی کسب کردهاند، شناسایی کند. خروجی باید شامل دو ستون زیر باشد:
full_name
: نام کامل مربی که از ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.
total_score
: مجموع امتیازات کسبشده توسط مربی.
ترتیب نتایج باید به صورت نزولی بر اساس total_score
و در صورت برابر بودن امتیاز، به صورت نزولی بر اساس full_name
باشد.
دقت کنید که تنها ۱۱ نفر اول باید در خروجی نمایش داده شوند.
3 سطر اول خروجی شما باید به شکل زیر باشد:
full_name | total_score |
---|---|
Helmut Schön | 53 |
Luiz Felipe Scolari | 49 |
Mário Zagallo | 44 |
هر تیم در مرحلهٔ حذفی چند گل زده است؟ فقط تیمهایی که مجموع گلهایشان در این مرحله بیش از ۱۰ باشد را نمایش دهید و بر اساس گل، نزولی و در صورتی که تعداد گل دو تیم مساوی بود بر اساس شناسهٔ تیم به صورت صعودی مرتب کنید.
3 سطر اول خروجی شما باید به شکل زیر باشد:
time_id | total_goals |
---|---|
T-09 | 95 |
T-28 | 65 |
T-39 | 59 |
هدف این بخش، استخراج فهرستی از ۲۰ بازیکن با بیشترین سن، در زمان حضور در یک مسابقه است. سن بازیکنان باید بر حسب روز محاسبه شود.
کوئریای بنویسید که اطلاعات زیر را برای این بازیکنان استخراج کند:
full_name
: نام کامل بازیکن که با ترکیب نام و نام خانوادگی با یک فاصله ایجاد شده است.
match_name
: نام مسابقهای که بازیکن در آن به میدان رفته و مشخصکننده دو تیم حاضر است.
team_name
: نام تیم ملی بازیکن.
tournament_year
: سال برگزاری تورنمنت.
age
: سن بازیکن بر حسب روز در زمان انجام مسابقه.
نتایج باید به صورت نزولی بر اساس ستون age
مرتب شوند و فقط ۲۰ رکورد اول نمایش داده شود. توجه داشته باشید که یک بازیکن ممکن است بیش از یک بار در این فهرست ظاهر شود.
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 مهم نیست).