SQL

LAST_VALUE

تابع پنجره ای LAST_VALUE در SQL: توضیح جامع با مثال

تابع LAST_VALUE یکی از توابع پنجره ای در SQL است که برای یافتن آخرین مقدار در یک مجموعه مرتب شده از مقادیر استفاده می شود. این تابع در کنار توابع دیگر پنجره ای مانند FIRST_VALUE، LAG و NTH_VALUE قرار می گیرد و برای انجام محاسبات تحلیلی قدرتمند بر روی مجموعه های داده درون گروه ها یا دسته ها کاربرد دارد.

نحو کلی:

SQL
LAST_VALUE(expression) OVER (window_definition)

در این عبارت:

  • expression : عبارتی که می خواهید مقدار آن برای هر سطر محاسبه شود.
  • window_definition : تعریفی از پنجره ای است که تابع در آن عمل می کند. این تعریف شامل جزئیاتی مانند نحوه پارتیشن بندی داده ها، ترتیب دهی و محدوده پنجره می باشد.

مثال ۱: یافتن آخرین قیمت سهم در هر روز

فرض کنید جدولی به نام stock_prices داریم که شامل ستون های date (تاریخ)، symbol (نماد سهم) و price (قیمت) می باشد. می خواهیم آخرین قیمتی را که هر سهم در هر روز داشته است، بدست آوریم.

SQL
SELECT date, symbol, price,
       LAST_VALUE(price) OVER (PARTITION BY symbol ORDER BY date) AS last_price
FROM stock_prices;

در این مثال:

  • داده ها بر اساس ستون symbol پارتیشن بندی می شوند، به این معنی که LAST_VALUE برای هر نماد سهم به طور جداگانه محاسبه می شود.
  • داده ها بر اساس ستون date به ترتیب صعودی مرتب می شوند، به این معنی که LAST_VALUE آخرین قیمت را در هر روز برای هر سهم پیدا می کند.
  • ستون جدیدی به نام last_price اضافه می شود که آخرین قیمت هر سهم در هر روز را نشان می دهد.

مثال ۲: یافتن بالاترین موجودی انبار در هر ماه

فرض کنید جدولی به نام inventory داریم که شامل ستون های product_id (شناسه محصول)، month (ماه) و quantity (موجودی) می باشد. می خواهیم بالاترین موجودی را که هر محصول در هر ماه داشته است، بدست آوریم.

SQL
SELECT product_id, month, quantity,
       LAST_VALUE(quantity) OVER (PARTITION BY product_id ORDER BY month DESC) AS max_quantity
FROM inventory;

در این مثال:

  • داده ها بر اساس ستون product_id پارتیشن بندی می شوند.
  • داده ها بر اساس ستون month به ترتیب نزولی مرتب می شوند، به این معنی که LAST_VALUE بالاترین موجودی را در هر ماه برای هر محصول پیدا می کند.
  • ستون جدیدی به نام max_quantity اضافه می شود که بالاترین موجودی هر محصول در هر ماه را نشان می دهد.

نکات مهم:

  • توابع پنجره ای به طور ذاتی بر روی مجموعه های نتیجه مرتب شده عمل می کنند. اطمینان حاصل کنید که قبل از استفاده از توابع پنجره ای، داده های خود را بر اساس ستون مورد نظر مرتب سازی کنید.
  • می توانید از عبارت های مختلفی مانند ROWS BETWEEN و PRECEDING برای تعریف دقیق تر پنجره استفاده کنید.
  • توابع پنجره ای قدرتمند هستند و می توانند برای انجام محاسبات پیچیده تحلیلی بر روی داده ها استفاده شوند. با کمی تمرین می توانید از آنها برای حل طیف وسیعی از مسائل تحلیلی استفاده کنید.

منابع مفید:

۵/۵ ( ۱ امتیاز )
نمایش بیشتر

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

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

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