SELECT وWHERE وGROUP BY
اجمع بيانات الحملات
SELECT وWHERE وGROUP BY درس مجاني في Digital Marketing Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Digital Marketing Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Digital Marketing Academy 4 دروس في المجموع.
الأفعال الثلاثة
يُبنى كل مقياس تسويقي تقريبًا من ثلاث عبارات: يختار SELECT الأعمدة، وتصفّي WHERE الصفوف، ويختزل GROUP BY الصفوف إلى شرائح.
أتقنوا هذه الثلاثية، وستتمكنون من الإجابة عن معظم أسئلة التحليلات اليومية بأنفسكم.
SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;SELECT: اختيار الأعمدة
يسرد SELECT ما تريدون إعادته. ويمكنكم إعادة تسمية الأعمدة باستخدام AS لجعل النتائج واضحة، وحساب قيم جديدة داخل الاستعلام.
حافظوا على خفة مجموعات النتائج: استخرجوا الأعمدة التي تحتاجون إليها فعلًا فقط، لا سيما من الجداول الكبيرة.
SELECT campaign_id AS campaign,
spend,
spend * 1.2 AS spend_with_fees
FROM campaigns;WHERE: تصفية الصفوف
يُبقي WHERE الصفوف التي تطابق شرطًا معينًا فقط. ادمجوا الشروط باستخدام AND وOR للتركيز على شريحة محددة.
تُعد مرشحات التاريخ أساس عمل المسوقين، إذ تحدد فترة إعداد التقارير بدقة.
SELECT *
FROM sessions
WHERE channel = 'email'
AND session_date >= DATE '2026-01-01'
AND device = 'mobile';التصفية باستخدام IN وBETWEEN
يطابق IN أي قيمة في قائمة، وهو مثالي لعدة حملات في الوقت نفسه. بينما يلتقط BETWEEN نطاقًا معينًا، وهو مناسب للفترات الزمنية.
تُبقي هذه العبارات المرشحات المعقدة قصيرة وواضحة بدلًا من سلاسل طويلة من OR.
SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';GROUP BY: التقسيم إلى شرائح
يختزل GROUP BY الصفوف التي تتشارك قيمة معينة في صف واحد لكل مجموعة. واربطوه بدوال التجميع مثل SUM وCOUNT وAVG للحصول على مقاييس لكل شريحة.
هكذا تحوّلون الأحداث الخام إلى جدول أداء مفصل حسب القناة.
SELECT channel,
COUNT(*) AS sessions,
SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;دوال التجميع
تجمع SUM إجمالي الإيرادات، ويحصي COUNT الأحداث، ويحسب AVG المتوسط، بينما يحصي COUNT(DISTINCT ...) المستخدمين الفريدين.
تكتسب عمليات العد الفريد أهمية خاصة في التسويق: فإجمالي الجلسات وعدد الزوار الفريدين رقمان مختلفان جدًا.
SELECT campaign_id,
COUNT(*) AS clicks,
COUNT(DISTINCT user_id) AS reach,
AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;التجميع حسب عدة أعمدة
جمّعوا البيانات حسب أكثر من عمود لبناء مصفوفة، مثل القناة حسب الجهاز. ويصبح كل تركيب فريد صفًا مستقلًا.
يتيح ذلك تقسيمًا أعمق إلى شرائح دون تصدير أي شيء إلى جدول بيانات.
SELECT channel, device,
COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;HAVING: تصفية المجموعات
تُصفّي WHERE الصفوف قبل التجميع، بينما تُصفّي HAVING المجموعات بعد التجميع. استخدم HAVING للاحتفاظ بالشرائح التي تتجاوز حدًا معينًا.
على سبيل المثال، اعرض الحملات التي أدت إلى أكثر من 100 طلب فقط.
SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;الترتيب وتحديد العدد
تُرتّب ORDER BY النتائج بحيث تظهر الصفوف الأكثر أهمية أولًا. ويحدّد LIMIT عدد الصفوف المعروضة، ما يجعله مناسبًا لتقارير أفضل N نتائج.
ويجيب استخدامهما معًا فورًا عن سؤال مثل: "ما أفضل 5 حملات لديّ من حيث الإيرادات؟"
SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;التجميع الشرطي
يتيح FILTER (أو CASE داخل دالة تجميع) للاستعلام الواحد حساب عدة مقاييس شرطية في آن واحد، مثل إيرادات العملاء الجدد مقارنةً بالعملاء العائدين.
وهذا يغني عن تشغيل عدة استعلامات ويحافظ على اتساق الشرائح تمامًا.
SELECT channel,
SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;تجميع العناصر معًا
يضم الاستعلام الكامل جميع العبارات في طبقات: تصفية الصفوف باستخدام WHERE، ثم التجميع، ثم تصفية المجموعات باستخدام HAVING، ثم الترتيب وتحديد العدد.
اقرأه من الأعلى إلى الأسفل، وستجد أنه يروي قصة تحليلية متكاملة عن قنواتك.
SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;اختبار سريع
تريد عرض مجموعات الحملات التي تضم أكثر من 50 طلبًا فقط. ما العبارة التي تُصفّي المجموعات المجمّعة؟
مراجعة
تحدّد SELECT الأعمدة، وتُصفّي WHERE الصفوف، وتقسّم GROUP BY البيانات إلى شرائح، وتُصفّي HAVING المجموعات، بينما يشكّل ORDER BY مع LIMIT شكل المخرجات.
وباستخدام التجميع الشرطي، يمكنك حساب عدة مقاييس في مرور واحد. التالي: دمج البيانات من عدة جداول باستخدام JOINs.
الأسئلة الشائعة
هل درس «SELECT وWHERE وGROUP BY» مجاني؟
نعم — نص درس «SELECT وWHERE وGROUP BY» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Digital Marketing Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Digital Marketing Academy 4 دروس في المجموع.
ماذا ستتعلم في «SELECT وWHERE وGROUP BY»؟
اجمع بيانات الحملات تتمرن على Digital Marketing Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Digital Marketing Academy؟
لا تُشترط خبرة سابقة. Digital Marketing Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «SELECT وWHERE وGROUP BY»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Digital Marketing Academy هذا؟
نعم. كل درس في Digital Marketing Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا يتعلم المسوقون SQL
- SELECT وWHERE وGROUP BY
- ضم جداول التسويق
- استعلامات الشرائح ومسارات التحويل