العودة إلى الدورة

تعبيرات الجدول المشتركة (CTEs) باستخدام WITH

أساسيات قواعد البيانات: من الصفر إلى الاحتراف

الدرس 31: تعبيرات الجدول المشتركة (Common Table Expressions - CTEs) باستخدام WITH

توفر تعبيرات الجدول المشتركة (CTEs)، التي يتم تعريفها باستخدام عبارة WITH، طريقة لكتابة الاستعلامات المعقدة بطريقة أنظف وأكثر قابلية للقراءة ومنظمة. فكر في CTE على أنه مجموعة نتائج مؤقتة ومسماة لا توجد إلا طوال مدة تنفيذ الاستعلام الحالي.

بناء الجملة الأساسي

sql WITH [cte_name] AS ( -- تعريف عبارة SELECT لمجموعة النتائج المؤقتة SELECT column1, aggregate_function(column2) FROM table GROUP BY column1 )

-- الآن قم بالإشارة إلى CTE في الاستعلام الرئيسي SELECT * FROM [cte_name] WHERE [condition];

مثال: العثور على ذوي الأجور المرتفعة حسب القسم

هذا هو نفس منطق مثال الاستعلام الفرعي، ولكنه مقسم إلى خطوات أوضح.

  1. حساب متوسط الراتب لكل قسم (DeptAvg).
  2. استخدام هذه النتيجة المؤقتة للعثور على الموظفين الذين يكسبون أكثر من متوسط راتب قسمهم.

sql WITH DepartmentAverages AS ( SELECT Department, AVG(Salary) AS AvgSalary FROM Employees GROUP BY Department )

SELECT E.Name, E.Salary, DA.AvgSalary FROM Employees E JOIN DepartmentAverages DA ON E.Department = DA.Department WHERE E.Salary > DA.AvgSalary; -- التصفية بناءً على نتيجة CTE

تعمل CTEs على تحسين قابلية قراءة الكود وتسمح لك بإعادة استخدام منطق معقد ضمن استعلام واحد.