#یافتن اولین رکورد در هر گروه به همراه مشخصات اضافی
کوئری بالا یکی از مواردی است که معمولاً در تهیه گزارشات مورد نیازمون هستش.
1️⃣یکی از روش ها استفاده از Subquery و Join است یعنی در یک مرحله، اولین رکورد از هر گروه رو انتخاب مبکنبم و در مرحله دوم بر اساس یک فیلد(تاریخ، ID و ...) اطلاعات اضافی رو از جدول اصلی استخراج می کنیم
2️⃣روش دیگر استفاده از Left Join هست. با استفاده از شرط خاصی که در جوین قرار می دهیم و با عملگر IS Null اطلاعات مورد نیاز رو استخراج می کنیم.
در لینک زیر این دو روش رو به نحو خوبی با مثالی مناسب و توضیحات کافی تشریح شده :
(روش های دیگری مانند استفاده از Cross/Outer Apply نیز برای تولید چنین خروجی وجود دارد)
⚠️اما حالاتی نیز وجود داره که ممکنه شما فیلد مشترکی بین Subquery و جدول اصلی برای جوین زدن نداشته باشید!! در این حالات از Window Function استفاده می کنیم که در ادامه به توضیح اون خواهیم پرداخت.
http://www.cryer.co.uk/brian/sql/sql_first_record_per_group.htm
Post #574
2.03K