🔥 Lesson 13 | الآن تبدأ التقارير الحقيقية!
تخيل أن جدول Orders يحتوي على 10,000 طلب...
ومدير المبيعات سألك:
❓ كم طلبًا قام به كل عميل؟
هل ستعدّ الطلبات يدويًا؟ 😅
هنا نحتاج إلى:
🚀 GROUP BY
فهي تحول آلاف الصفوف إلى مجموعات مفيدة للتقارير.
مثلاً:
Customer 1 → 5 Orders
Customer 2 → 12 Orders
Customer 3 → 3 Orders
💬 قبل مشاهدة الشرح:
برأيك، هل GROUP BY تحذف الصفوف؟
أم تجمعها منطقيًا داخل مجموعات؟ 🤔
اكتب توقعك 👇
#SQLServer #GROUPBY #ERP_Project
تخيل أن جدول Orders يحتوي على 10,000 طلب...
ومدير المبيعات سألك:
❓ كم طلبًا قام به كل عميل؟
هل ستعدّ الطلبات يدويًا؟ 😅
هنا نحتاج إلى:
🚀 GROUP BY
فهي تحول آلاف الصفوف إلى مجموعات مفيدة للتقارير.
مثلاً:
Customer 1 → 5 Orders
Customer 2 → 12 Orders
Customer 3 → 3 Orders
💬 قبل مشاهدة الشرح:
برأيك، هل GROUP BY تحذف الصفوف؟
أم تجمعها منطقيًا داخل مجموعات؟ 🤔
اكتب توقعك 👇
#SQLServer #GROUPBY #ERP_Project
الشرح المختصر للدرس
لدينا جدول
لو سأل المدير:
نحن لا نريد عرض 6 صفوف.
نريد تقريرًا:
هنا تعمل
هي تجمع الصفوف التي لها نفس
الفكرة الذهبية:
لدينا جدول
Orders:OrderID | CustomerID
--------------------
101 | 1
102 | 1
103 | 2
104 | 2
105 | 2
106 | 3
لو سأل المدير:
كم طلبًا نفذ كل عميل؟
نحن لا نريد عرض 6 صفوف.
نريد تقريرًا:
CustomerID | OrderCount
-----------------------
1 | 2
2 | 3
3 | 1
هنا تعمل
GROUP BY.هي تجمع الصفوف التي لها نفس
CustomerID في مجموعة واحدة، ثم نستخدم COUNT() لحساب عدد الصفوف داخل كل مجموعة.الفكرة الذهبية:
GROUP BYتحدد المجموعات، و
COUNT()تقوم بالحساب.
الكود الجاهز
شرح سريع
نريد تقريرًا لكل عميل.
نحسب عدد الصفوف، أي عدد الطلبات.
نجمع طلبات كل عميل معًا.
نعرض الأكثر طلبًا أولًا.
SELECT
CustomerID,
COUNT(*) AS OrderCount
FROM Orders
GROUP BY CustomerID
ORDER BY OrderCount DESC;
شرح سريع
CustomerIDنريد تقريرًا لكل عميل.
COUNT(*)نحسب عدد الصفوف، أي عدد الطلبات.
GROUP BY CustomerIDنجمع طلبات كل عميل معًا.
ORDER BY OrderCount DESCنعرض الأكثر طلبًا أولًا.
🤔 سؤال سريع | GROUP BY
لدينا الطلبات التالية:
Customer 1 → Order 101
Customer 1 → Order 102
Customer 2 → Order 103
Customer 2 → Order 104
Customer 2 → Order 105
بعد تنفيذ:
GROUP BY CustomerID
مع:
COUNT(*)
ما النتيجة؟
A️⃣ Customer 1 = 2 | Customer 2 = 3
B️⃣ Customer 1 = 1 | Customer 2 = 1
C️⃣ سيظهر 5 عملاء
💬 اكتب فقط A أو B أو C
ثم اشرح السبب بجملة قصيرة 👇
لدينا الطلبات التالية:
Customer 1 → Order 101
Customer 1 → Order 102
Customer 2 → Order 103
Customer 2 → Order 104
Customer 2 → Order 105
بعد تنفيذ:
GROUP BY CustomerID
مع:
COUNT(*)
ما النتيجة؟
A️⃣ Customer 1 = 2 | Customer 2 = 3
B️⃣ Customer 1 = 1 | Customer 2 = 1
C️⃣ سيظهر 5 عملاء
💬 اكتب فقط A أو B أو C
ثم اشرح السبب بجملة قصيرة 👇
تحدي اليوم — أقوى قليلًا
🏆 تحدي Lesson 13
لدينا جدول Orders:
101 → Customer 1
102 → Customer 1
103 → Customer 2
104 → Customer 3
105 → Customer 3
106 → Customer 3
107 → Customer 3
ونفذنا:
SELECT
CustomerID,
COUNT(*) AS OrderCount
FROM Orders
GROUP BY CustomerID;
❓ ما النتيجة؟
اكتبها بهذا الشكل:
Customer 1 = ?
Customer 2 = ?
Customer 3 = ?
🚫 ممنوع تشغيل SQL
فكر أولًا كمطور تقارير 👨💻
💬 اكتب النتيجة في التعليقات.
🏆 تحدي Lesson 13
لدينا جدول Orders:
101 → Customer 1
102 → Customer 1
103 → Customer 2
104 → Customer 3
105 → Customer 3
106 → Customer 3
107 → Customer 3
ونفذنا:
SELECT
CustomerID,
COUNT(*) AS OrderCount
FROM Orders
GROUP BY CustomerID;
❓ ما النتيجة؟
اكتبها بهذا الشكل:
Customer 1 = ?
Customer 2 = ?
Customer 3 = ?
🚫 ممنوع تشغيل SQL
فكر أولًا كمطور تقارير 👨💻
💬 اكتب النتيجة في التعليقات.
🚀 ممتاز...
الآن أصبحنا نعرف:
كم طلبًا قام به كل عميل؟
باستخدام:
GROUP BY + COUNT
لكن مدير المبيعات لم يكتفِ 😅
قال:
💰 لا أريد عدد الطلبات...
أريد إجمالي قيمة الطلبات لكل عميل!
ثم سأل:
📊 ما متوسط قيمة الطلب؟
🔥 ما أكبر طلب؟
🔥 وما أصغر طلب؟
هنا COUNT وحدها لن تكفي...
الدرس القادم:
Lesson 14 — Aggregate Functions
SUM
AVG
MIN
MAX
💬 سؤال قبل الدرس:
إذا كان لدى عميل طلبان:
100$
+
250$
ما الدالة التي تتوقع أن نستخدمها للحصول على 350$؟ 🤔
الآن أصبحنا نعرف:
كم طلبًا قام به كل عميل؟
باستخدام:
GROUP BY + COUNT
لكن مدير المبيعات لم يكتفِ 😅
قال:
💰 لا أريد عدد الطلبات...
أريد إجمالي قيمة الطلبات لكل عميل!
ثم سأل:
📊 ما متوسط قيمة الطلب؟
🔥 ما أكبر طلب؟
🔥 وما أصغر طلب؟
هنا COUNT وحدها لن تكفي...
الدرس القادم:
Lesson 14 — Aggregate Functions
SUM
AVG
MIN
MAX
💬 سؤال قبل الدرس:
إذا كان لدى عميل طلبان:
100$
+
250$
ما الدالة التي تتوقع أن نستخدمها للحصول على 350$؟ 🤔
14.png
1.7 MB
📌 Lesson 14 | كيف يحسب النظام المجموع والمتوسط؟
عد أن تعلمنا
طلب منك مدير المبيعات تقريرًا يحتوي على:
✅ إجمالي المبيعات.
✅ متوسط قيمة الطلب.
✅ أكبر طلب.
✅ أصغر طلب.
هل سنحسبها يدويًا؟ 🤔
طبعًا لا...
SQL يوفر لنا دوال جاهزة.
اليوم سنتعرف على:
✔️
✔️
✔️
✔️
عد أن تعلمنا
GROUP BY...طلب منك مدير المبيعات تقريرًا يحتوي على:
✅ إجمالي المبيعات.
✅ متوسط قيمة الطلب.
✅ أكبر طلب.
✅ أصغر طلب.
هل سنحسبها يدويًا؟ 🤔
طبعًا لا...
SQL يوفر لنا دوال جاهزة.
اليوم سنتعرف على:
✔️
SUM()✔️
AVG()✔️
MAX()✔️
MIN()❤1
الكود
SELECT
SUM(OrderAmount) AS TotalSales,
AVG(OrderAmount) AS AverageSales,
MAX(OrderAmount) AS HighestOrder,
MIN(OrderAmount) AS LowestOrder
FROM Orders;
💡 النتيجة
Total Average Max Min
1250 250 450 80
🔥التحدي
إذا كانت قيم الطلبات هي:
100
250
300
150
200
بدون تشغيل SQL...
ما الناتج؟ 💬
SUM = ؟
AVG = ؟
MAX = ؟
MIN = ؟
SELECT
SUM(OrderAmount) AS TotalSales,
AVG(OrderAmount) AS AverageSales,
MAX(OrderAmount) AS HighestOrder,
MIN(OrderAmount) AS LowestOrder
FROM Orders;
💡 النتيجة
Total Average Max Min
1250 250 450 80
🔥التحدي
إذا كانت قيم الطلبات هي:
100
250
300
150
200
بدون تشغيل SQL...
ما الناتج؟ 💬
SUM = ؟
AVG = ؟
MAX = ؟
MIN = ؟
❓ سؤال
لو كنت مدير شركة...
أي معلومة تعتبرها أهم؟
A️⃣ إجمالي المبيعات
B️⃣ متوسط قيمة الطلب
C️⃣ أكبر طلب
ولماذا؟
لو كنت مدير شركة...
أي معلومة تعتبرها أهم؟
A️⃣ إجمالي المبيعات
B️⃣ متوسط قيمة الطلب
C️⃣ أكبر طلب
ولماذا؟
🎉 إجابة تحدي 14
هل كانت إجابتك صحيحة؟ 👀
SUM = 1000
AVG = 200
MAX = 300
MIN = 100
إذا كانت إجابتك صحيحة...
اكتب في التعليقات:
🔥 تمت المهمة
هل كانت إجابتك صحيحة؟ 👀
SUM = 1000
AVG = 200
MAX = 300
MIN = 100
إذا كانت إجابتك صحيحة...
اكتب في التعليقات:
🔥 تمت المهمة