با استفاده از تابع FIRST_VALUE در MySQL، برای هر کارمند در جدول tasks نام و تاریخ اولین تسکی که بر اساس ستون start_date انجام داده است را نمایش دهید.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:36 0.0
برای حل این سؤال از توابع پنجرهای MySQL 8+ استفاده کنید: FIRST_VALUE(column) OVER (PARTITION BY employee_id ORDER BY start_date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) تا مقدار اولین سطر هر پارتیشن (هر کارمند) را بگیرید؛ توجه داشته باشید که قاب پیشفرض میتواند رفتار متفاوتی داشته باشد، بنابراین بهتر است صراحتاً frame را تعیین کنید تا اولین مقدار کل پارتیشن را دریافت کنید. نکات: ستونهای partition و order را صحیح انتخاب کنید و اگر نسخه MySQL قدیمی است تابع پنجرهای در دسترس نخواهد بود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نمایش نام و تاریخ اولین تسک هر کارمند با FIRST_VALUE میتوانید از توابع پنجرهای استفاده کنید تا مقدار اولین سطر هر پارتیشن را به دست آورید. مثلاً FIRST_VALUE(name) OVER (PARTITION BY employee_id ORDER BY start_date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) برای هر کارمند، نام اولین تسکی که بر اساس start_date انجام شده را میآورد. توجه کنید که قاب پیشفرض ممکن است رفتار متفاوتی بدهد، بنابراین صریحاً بازه را تعیین کنید تا اولین مقدار کل پارتیشن گرفته شود. همچنین مطمئن شوید نسخه MySQL شما 8+ است و ستونهای PARTITION و ORDER را دقیق انتخاب کنید چون در نسخههای قدیمیتر پنجرههای ویندوز پشتیبانی نمیشوند.
گزارش