Menu
CoddyTech

مراجعة - استعلامات WITH

جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 50 من 72.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • devices_specs: device_id, width, height, num_features, opinion
  • devices_score: device_id, score

تُقاس جودة الجهاز باستخدام (width/height)*num_features.

نريد العثور على جميع الأجهزة التي جرى المبالغة في تقديرها. استخرج جميع الأجهزة التي تكون فيها قيمة opinion للجهاز أكبر من الجودة المتوسطة، وتكون فيها قيمة score للجهاز أقل من الجودة المتوسطة. أَعِد device_id فقط.

لحل المسألة، استخدم عبارة WITH لإنشاء استعلام فرعي يحسب متوسط الجودة، ثم أعد استخدامه في الاستعلام الرئيسي.

جرّب بنفسك

-- الخطوة 1: سمِّ مجموعة نتائج مؤقتة تحتوي على قيمة متوسطة واحدة
WITH avg_quality AS (
    SELECT ____ AS avg_q
    FROM devices_specs
)
-- الخطوة 2: اربط جدولي الأجهزة معًا، ثم ألحِق مجموعة النتائج المؤقتة
SELECT dsp.device_id
FROM devices_specs dsp
INNER JOIN devices_score dsc ON ____
INNER JOIN avg_quality aq
-- الخطوة 3: احتفظ بالأجهزة التي تقع على جانبين متقابلين من ذلك المتوسط
WHERE ____

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ SQL