قد تحتاج إلى حساب تجميع فوق نتائج تجميع آخر، مثل متوسط عدد الطلبات لكل عميل لديه طلبات. يمكن تقسيم المسألة إلى مرحلتين باستخدام جدول مشتق. تحسب المرحلة الداخلية عدد الطلبات لكل عميل، ثم تتعامل المرحلة الخارجية مع تلك الأعداد بوصفها قيمًا عادية قابلة لحساب المتوسط.
هذا الفصل يوضح مستوى الحساب. المتوسط الخارجي يُحسب بين العملاء الممثلين في نتيجة الاستعلام الداخلي، وليس بين صفوف الطلبات الأصلية. إذا كان المصدر الداخلي هو جدول الطلبات وحده، فلن يظهر العملاء الذين لا يملكون طلبات، وبالتالي لا تدخل أصفارهم في المتوسط المحسوب.
مثال
WITH orders AS (
SELECT 1 AS customer_id
UNION ALL SELECT 1
UNION ALL SELECT 2
)
SELECT AVG(d.order_count) AS average_count
FROM (
SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id
) AS d;
اختيار المصدر الداخلي جزء من تعريف المؤشر نفسه. لذلك يجب تحديد ما إذا كان المطلوب متوسط العملاء النشطين فقط أو متوسط جميع العملاء قبل كتابة الحساب.
باختصار: استخدم جدولًا مشتقًا لإنتاج الأعداد أولًا، ثم احسب متوسط تلك النتائج في الاستعلام الخارجي.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.