شرح صفوف ومحتوى الفقرة
عند بناء تقارير تحليلية متعددة المراحل، يمكنك تسلسل عدة تعبيرات جدولية داخل جملة 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;