**کد شما باید روی نسخهی استاندارد *PostgreSQL* قابل اجرا باشد.**
---
علی پسر کنجکاوی است. او پس از این که دوری کارآموزیاش را گذرانده و در *بله* ماندگار شده، دلش میخواهد کمی اطلاعات از الگوهای رفتاری کاربران بهدست آورد.
تعدادی سؤال در ذهن علی پیش آمده و علی میخواهد به پاسخ این سؤالات برسد. به همین دلیل، باید تعدادی کوئری در دیتابیس اجرا کند. به علی کمک کنید تا به کنجکاویاش برسد :)
# جزئیات پروژه
ساختار جداول بهصورت زیر است:
1. اطلاعات کاربران (`users`):
| نام ستون | نوع | تعریف | ملاحضات |
|--------|--------------|--------------|---------------|
| `id` | `INTEGER` | شناسهی کاربر | `PRIMARY KEY` |
| `name` | `VARCHAR(255)` | نام | |
| `nick` | `VARCHAR(32)` | نام کاربری | |
2. وضعیت بلاک بودن کاربران توسط یکدیگر (`relations`):
| نام ستون | نوع | تعریف | ملاحظات |
|--------------|--------------|---------------------------------|--------------------------------------|
| `from_user_id` | `INTEGER` | شناسهی کاربری که میتواند بلاک کند | |
| `to_user_id` | `INTEGER` | شناسهی کاربری که میتواند بلاک شود | |
| `blocked` | `BOOLEAN` | وضعیت بلاک بودن کاربر | `DEFAULT FALSE` |
| `blocked_at` | `TIMESTAMP` | زمان بلاک شدن کاربر | `DEFAULT NULL` |
3. پیامها (`messages`):
| نام ستون | نوع | تعریف | ملاحظات |
|--------------|--------------|-------------------------------------------|---------------|
| `id` | `INTEGER` | شناسهی پیام | `PRIMARY KEY` |
| `from_user_id` | `INTEGER` | شناسهی کاربر ارسالکنندهی پیام | |
| `to_user_id` | `INTEGER` | شناسهی کاربر دریافتکنندهی پیام | |
| `body` | `BYTEA` | متن پیام | |
| `created_at` | `TIMESTAMP` | زمان ارسال شدن پیام | |
| `edited_at` | `TIMESTAMP` | زمان آخرین ویرایش پیام (در صورت ویرایش شدن) | |
| `deleted_at` | `TIMESTAMP` | زمان حذف پیام (در صورت حذف شدن) | |
سؤالات ذهن آشفتهی علی بهشرح زیر هستند:
1. شناسهی کاربرانی که نام کاربری (`nick`) آنها با `am` شروع میشود بهترتیب صعودی
2. شناسهی کاربرانی که حداقل یک کاربر را بلاک کردهاند بهترتیب صعودی
3. شناسهی پیامهایی که کاربران در چتهای خصوصی بلاکنشده ارسال کردهاند (یعنی در حال حاضر کاربر ارسالکننده، کاربر دریافتکننده را بلاک نکرده باشد) و قبل از حذف شدن ویرایش شدهاند بهترتیب صعودی (اگر شخص پس از ارسال پیام بلاک شده باشد، پیامها نباید در خروجی موجود باشند.)
**نکته:** نام ستون خروجی مهم نیست.
# آنچه باید آپلود کنید
کوئریهای خود را در قالب زیر، در یک فایل با پسوند `.sql` قرار داده و آن را ارسال کنید (فایل را زیپ نکنید).
```sql
-- Section1
your 1st query here
-- Section2
your 2nd query here
-- Section3
your 3rd query here
```