کوئریهای شما باید روی PostgreSQL 13 قابل اجرا باشد.
طاها قصد دارد تا تصمیمهایش را از این پس به شکل دادهمحور بگیرد و صرفاً شهودی عمل نکند. برای این کار، او نیاز به اطلاعات مختلفی از کاربران اسنپ دارد؛ اما چون او SQL بلد نیست، از شما خواسته تا کوئریهای مربوط به اطلاعات موردنیازش را بنویسید.
جزئیات پروژه
ساختار جداول بهصورت زیر است:
- کاربران (
users
):
نام ستون | نوع | تعریف | ملاحضات |
---|---|---|---|
id |
BIGSERIAL |
شناسهی کاربر | PRIMARY KEY |
name |
VARCHAR(255) |
نام | |
phone |
VARCHAR(255) |
شماره تلفن |
- سفرها (
trips
):
نام ستون | نوع | تعریف | ملاحظات |
---|---|---|---|
id |
BIGSERIAL |
شناسهی سفر | PRIMARY KEY |
user_id |
BIGINT |
شناسهی مسافر | |
driver_id |
BIGINT |
شناسهی سفیر (جدول سفیران در این مسئله وجود ندارد) | |
started_at |
TIMESTAMP |
زمان شروع سفر | |
finished_at |
TIMESTAMP |
زمان پایان سفر |
- دعوت کاربران به اپلیکیشن (
invitations
):
نام ستون | نوع | تعریف | ملاحظات |
---|---|---|---|
id |
BIGSERIAL |
شناسهی دعوت | PRIMARY KEY |
inviter_user_id |
BIGINT |
شناسهی کاربر دعوتکننده | |
invitee_user_id |
BIGINT |
شناسهی کاربر دعوتشده | |
invited_at |
TIMESTAMP |
زمان دعوت |
مطلوبات
کوئریهای SQL خواستهشده از شما موارد زیر است (توجه کنید که هر کوئری امتیازی جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بنویسید، کوئریهایی که حل کردید را بفرستید و قسمت مربوط به آن کوئری را خالی بگذارید):
- شناسهی کاربرانی که شمارهی آنها شامل زیررشتهی
1400
است، بهترتیب صعودی برحسب شناسه - شناسهی سفرهایی که زمان شروعشان بین ساعت ۲۲ تا ۱ بامداد است، بهترتیب صعودی برحسب شناسه
- شناسه، نام، شماره موبایل و جزء صحیح تعداد ساعات سفرهای کاربران (مجموع اختلاف زمان شروع و پایان سفرهایشان)، بهترتیب نزولی برحسب تعداد ساعات (اگر تعداد ساعات دو کاربر یکسان باشد، کاربری باید زودتر بیاید که شناسهاش کوچکتر است.)
- شناسه و شماره تلفن افرادی که حداقل در سه ماه مختلف میلادی، در هر یک از این ماهها حداقل سه نفر را به اسنپ دعوت کردهاند، بهترتیب صعودی برحسب شناسه
نکته: نام ستونهای خروجی مهم نیست، اما ترتیب آنها مهم است.
آنچه باید آپلود کنید
کوئریهای خود را در قالب زیر، در یک فایل با پسوند .sql
قرار داده و آن را ارسال کنید (فایل را زیپ نکنید):
-- Section1
your 1st query here
-- Section2
your 2nd query here
-- Section3
your 3rd query here
-- Section4
your 4th query here
ارسال پاسخ برای این سؤال