لینک‌های مفید برای شرکت در مسابقه:

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

SnappQL


کوئری‌های شما باید روی PostgreSQL 13 قابل اجرا باشد.


طاها قصد دارد تا تصمیم‌هایش را از این پس به شکل داده‌محور بگیرد و صرفاً شهودی عمل نکند. برای این کار، او نیاز به اطلاعات مختلفی از کاربران اسنپ دارد؛ اما چون او SQL بلد نیست، از شما خواسته تا کوئری‌های مربوط به اطلاعات موردنیازش را بنویسید.

جزئیات پروژه🔗

ساختار جداول به‌صورت زیر است:

  1. کاربران (users):
نام ستون نوع تعریف ملاحضات
id BIGSERIAL شناسه‌ی کاربر PRIMARY KEY
name VARCHAR(255) نام
phone VARCHAR(255) شماره تلفن
  1. سفرها (trips):
نام ستون نوع تعریف ملاحظات
id BIGSERIAL شناسه‌ی سفر PRIMARY KEY
user_id BIGINT شناسه‌ی مسافر
driver_id BIGINT شناسه‌ی سفیر (جدول سفیران در این مسئله وجود ندارد)
started_at TIMESTAMP زمان شروع سفر
finished_at TIMESTAMP زمان پایان سفر
  1. دعوت کاربران به اپلیکیشن (invitations):
نام ستون نوع تعریف ملاحظات
id BIGSERIAL شناسه‌ی دعوت PRIMARY KEY
inviter_user_id BIGINT شناسه‌ی کاربر دعوت‌کننده
invitee_user_id BIGINT شناسه‌ی کاربر دعوت‌شده
invited_at TIMESTAMP زمان دعوت

مطلوبات🔗

کوئری‌های SQL خواسته‌شده از شما موارد زیر است (توجه کنید که هر کوئری امتیازی جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بنویسید، کوئری‌هایی که حل کردید را بفرستید و قسمت مربوط به آن کوئری را خالی بگذارید):

  1. شناسه‌ی کاربرانی که شماره‌ی آن‌ها شامل زیررشته‌ی 1400 است، به‌ترتیب صعودی برحسب شناسه
  2. شناسه‌ی سفرهایی که زمان شروع‌شان بین ساعت ۲۲ تا ۱ بامداد است، به‌ترتیب صعودی برحسب شناسه
  3. شناسه، نام، شماره موبایل و جزء صحیح تعداد ساعات سفرهای کاربران (مجموع اختلاف زمان شروع و پایان سفرهای‌شان)، به‌ترتیب نزولی برحسب تعداد ساعات (اگر تعداد ساعات دو کاربر یکسان باشد، کاربری باید زودتر بیاید که شناسه‌اش کوچک‌تر است.)
  4. شناسه و شماره تلفن افرادی که حداقل در سه ماه مختلف میلادی، در هر یک از این ماه‌ها حداقل سه نفر را به اسنپ دعوت کرده‌اند، به‌ترتیب صعودی برحسب شناسه

نکته: نام ستون‌های خروجی مهم نیست، اما ترتیب آن‌ها مهم است.

آن‌چه باید آپلود کنید🔗

کوئری‌های خود را در قالب زیر، در یک فایل با پسوند .sql قرار داده و آن را ارسال کنید (فایل را زیپ نکنید):

-- Section1
  your 1st query here
-- Section2
  your 2nd query here
-- Section3
  your 3rd query here
-- Section4
  your 4th query here
SQL
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.