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

Chaining Multiple CTE Steps تسلسل عدة تعبيرات WITH

تعلّم التعبيرات الجدولية الشائعة WITH والاستعلامات العودية في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

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

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

عند بناء تقارير تحليلية متعددة المراحل، يمكنك تسلسل عدة تعبيرات جدولية داخل جملة WITH واحدة عبر الفصل بين كل تعبير والذي يليه بفاصلة عادية:

  • كتابة كلمة WITH مرة واحدة فقط: تُكتب كلمة WITH مرة واحدة في بداية الاستعلام على النحو WITH step_one AS (...), step_two AS (...) SELECT ... دون تكرار كلمة WITH بعد الفاصلة.
  • البناء التراكمي للخطوات: يستطيع كل تعبير جدولي لاحق أن يستعلم من أي تعبير سبق تعريفه في الأعلى، مما يحوّل الاستعلام المعقد إلى خط أنابيب واضح ومرتب.
SQL
-- Chain two CTEs: first aggregate item revenue, then filter VIPs
WITH order_revenue AS (
  SELECT order_id, SUM(quantity * unit_price) AS net_val
  FROM order_items GROUP BY order_id
),
customer_ltv AS (
  SELECT o.user_id, SUM(orv.net_val) AS ltv
  FROM orders AS o
  INNER JOIN order_revenue AS orv ON o.order_id = orv.order_id
  GROUP BY o.user_id
)
SELECT user_id, ltv FROM customer_ltv WHERE ltv > 1000;