انتقل إلى محتوى الدرس

Grouping Results and Having Filters تجميع الصفوف وتصفية نتائج التجميع

ربط الجداول المترابطة عبر join و leftJoin وحساب الإحصائيات التجميعية وتجميع الصفوف بـ groupBy و having وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند بناء التقارير الإحصائية مثل إجمالي المبيعات لكل قسم أو عدد الطلبات لكل عميل، استخدم دالة groupBy لتقسيم الصفوف إلى مجموعات. ولأن SQL ينفذ شرط WHERE قبل التجميع، يجب استخدام دالة having لتصفية المجموعات بناءً على قيمتها الإحصائية المحسوبة.

  • تجميع الصفوف (groupBy): دمج السجلات التي تشترك في نفس قيمة العمود داخل مجموعات تلخيصية.
  • تصفية المجموعات (having): تطبيق شروط التصفية على النتائج المجمعة بعد حساب الدوال الإحصائية.
  • الفرق الجوهري: تصفي where الصفوف الفردية قبل التجميع، بينما تصفي having المجاميع النهائية بعد التجميع.
PHP
$vipBuyers = DB::table('orders')
    ->select('user_id')
    ->selectRaw('COUNT(*) as orders_count')
    ->where('status', 'paid')
    ->groupBy('user_id')
    ->having('orders_count', '>=', 5)
    ->get();