ما هي دالة النافذة (window function) في SQL؟
دالة النافذة (window function) تُجري حسابًا عبر مجموعة صفوف مرتبطة بالصف الحالي، من دون طيّها في صف واحد، خلافًا للتجميع العادي. وهي تشغّل المجاميع الجارية والمتوسطات المتحرّكة والترتيبات ومقارنات فترة بفترة، مع إعادتها كل صف أساسي.
حيث يختزل التجميع العادي صفوفًا كثيرة في صف واحد، تحسب دالة النافذة عبر «نافذة» من الصفوف لكنها تبقي كل صف في المخرجات. وهي الأداة خلف كثير من الأسئلة التحليلية.
ما تتيحه دوال النافذة:
- المجاميع الجارية الإيرادات التراكمية عبر الزمن.
- المتوسطات المتحرّكة تنعيم مقياس مضطرب.
- الترتيبات أعلى N منتجًا لكل فئة باستخدام RANK أو ROW_NUMBER.
- فترة بفترة مقارنة كل شهر بالسابق باستخدام LAG أو LEAD.
وهي تستخدم عبارة OVER مع PARTITION BY اختيارية (إعادة تعيين لكل مجموعة) وORDER BY (التسلسل داخل النافذة). قوية، لكنها من أصعب أنواع SQL كتابةً بشكل صحيح.
كثير من الأسئلة التحليلية الحقيقية، «أظهِر النمو شهرًا بشهر»، و«رتّب العملاء حسب الإنفاق داخل كل منطقة»، و«متوسط متحرّك لسبعة أيام»، تتطلب دوال نافذة في العمق. يولّدها iDBQuery نيابة عنك من لغة طبيعية، فتطلب مجموعًا جاريًا أو قائمة مرتَّبة من دون معرفة الصياغة. وينفّذ الاستعلام على بياناتك الحيّة ويوثّق النتيجة بالرجوع إلى صفوف المصدر، ولأنه يستطيع العمل عبر مصادر موصولة، يمكن لحسابات النافذة تلك أن تمتد عبر بيانات كانت أصلًا في أنظمة مختلفة.
Updated 2026-06-22