انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-011-L01

CTEs لاستعلامات مقروءة

  • الدرس 1 من 7
  • Mid-level
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

break a complex query into named steps with WITH.

الموضوعات المخطط لها

  • A CTE (common table expression) is a named subquery: WITH name AS (...).
  • Chain several CTEs; each can read the earlier ones.
  • Readability, not speed, is the main gain. In PostgreSQL 12+ a CTE is inlined unless it is referenced twice or has side effects; MATERIALIZED / NOT MATERIALIZED force the choice (verify version before recording).
  • Name each step after what it holds, not how it is computed.
تفاصيل المخطط المبدئي

عرض عملي

sql
WITH paid AS (
  SELECT * FROM orders WHERE status = 'PAID'
), per_customer AS (
  SELECT customer_id, sum(total_cents) AS spent FROM paid GROUP BY customer_id
)
SELECT * FROM per_customer WHERE spent > 100000;

اختبر فهمك

Is a CTE always an optimization fence?

أظهر الإجابة

No; since PostgreSQL 12 it is usually inlined.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.