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