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