برنامه نویسی

سوابق مجاور را در گروه جفت و انتقال دهید – از SQL به SPL #13

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

در یک جدول خاص ، سوابق پرسنل از منابع خارجی وارد و ترک یک ساختمان با کشیدن کارت های خود در روزهای اخیر می شود. هنگامی که شخصی وارد یک ساختمان می شود و از آن خارج می شود ، معمولاً N جفت سوابق وجود دارد که یک در هر جفت یک در و یک خارج است. بعضی اوقات داده ها استاندارد یا جفت نمی شوند ، تنها با یک نفر در یا خارج ، یا چندین مورد متوالی یا خارج از خانه.

جدول منبع
وظیفه: اکنون باید هر جفت رکورد را از ردیف ها به ستون ها تبدیل کنیم و آنها را به یک رکورد واحد تبدیل کنیم. داده های بی نظیر باید به یک رکورد جداگانه تبدیل شوند و قسمت خالی باید با تهی پر شود.

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

مقایسه کد:

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

راه حل SPL:

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

رمز
A1 data داده ها را از پایگاه داده بارگیری کرده و آن را بر اساس نام کاربری ، ساختمان ، Timestamp مرتب کنید.

A2 : از عملکرد گروه برای گروه به صورت شخصی و ساختمان استفاده کنید ، اما جمع نکنید.

A3 : برای هر گروه از داده ها در A2 ، هر گروه از داخل و خارج (از جمله فرد درون و خارج) را به یک گروه کوچک تقسیم کنید و گروه بزرگ را ادغام کنید تا فقط گروه کوچک را ترک کنید. گزینه I از عملکرد گروه ، گروه بندی بر اساس شرایط را نشان می دهد. ~ آیا گروه فعلی است ، و [-1] رکورد قبلی را نشان می دهد.

A4 : هر گروه از داده ها را در A3 از ردیف به ستون ها تبدیل می کند ، هر گروه را اتحاد می کند و فقط سوابق را ترک می کند. عملکرد محوری برای جابجایی استفاده می شود و نام ستون پس از جابجایی می تواند به صورت داخل و خارج مشخص شود تا اطمینان حاصل شود که NULL در صورت وجود داده های از دست رفته ، به طور خودکار پر می شود.


esproc spl بارگیری رایگان است 👉🏻: Esproc SPR دانلود رایگان

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

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

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

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