برنامه نویسی

تعداد تقاطع ها بین زیر مجموعه های مجاور را پس از گروه بندی – از SQL تا SPL #14 محاسبه کنید

توضیحات و تجزیه و تحلیل مشکل:

یک جدول پایگاه داده خاص وضعیت اجرای یک پروژه را ثبت می کند ، در حالی که چندین نفر هر روز در این پروژه شرکت می کنند و یک نفر می تواند در یک روز در کارهای مختلف پروژه شرکت کند.

جدول منبع
وظیفه: اکنون باید محاسبه کنیم: چند نفر نیز روز گذشته برای هر روز در این پروژه شرکت کرده اند. یعنی پس از گروه بندی براساس تاریخ ، تعداد تقاطع ها بین پرسنل روزانه و روز گذشته را محاسبه کنید. روز اول خاص است ، با فرض اینکه همه روز گذشته در این پروژه شرکت کرده اند.

نتایج مورد انتظار

مقایسه کد:

ما ابتدا می توانیم به صورت تاریخ گروه بندی کنیم و سپس عملیات تقاطع را روی زیر مجموعه های گروه بندی انجام دهیم ، که نیاز به حفظ زیر مجموعه ها پس از گروه بندی دارد. اما پس از گروه بندی SQL ، باید بلافاصله جمع شود و زیر مجموعه ها را نمی توان حفظ کرد و محاسبه تقاطع نیز غیرممکن است. این باید این کار را به روش دیگری انجام دهد ، ابتدا به صورت گروهی و تعیین اینکه آیا هر شخص در یک تاریخ خاص و روز قبل ظاهر می شود ، و سپس این تاریخ ها را گروه بندی و جمع می کند ، شامل چندین لایه از لانه سازی و توابع پنجره است که بسیار مشکل ساز است.
پس از گروه بندی در SPL ، زیر مجموعه ها را می توان حفظ کرد و زیر مجموعه های مجاور قابل ارجاع است. کد را می توان به طور مستقیم با توجه به ایده نوشت.

رمز
A1 : بارگیری داده ها از پایگاه داده و deduplication emp-id.
A2 : گروه تا تاریخ ، اما جمع نمی شوند.
A3 : یک جدول دو بعدی جدید را بر اساس نتایج گروه بندی ایجاد کنید. اگر گروه فعلی گروه 1 است ، به طور مستقیم تعداد اعضای گروه را برگردانید. اگر این گروه اول نیست ، سپس تقاطع EMP-ID های گروه فعلی و گروه قبلی را محاسبه کرده و تعداد اعضا را محاسبه کنید. ^ برای محاسبه تقاطع استفاده می شود ، [-1] نماینده گروه قبلی است.


Esproc SPR برای بارگیری رایگان است: Esproc SPR دانلود رایگانبشر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا