إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    SQL حساب متوسط قيم العمود بواسطة الدالة AVG()

    الدالة AVG()

    الدالة AVG() تستخدم للحصول على متوسط ( Average ) قيم الحقول الغير فارغة الموجودة في العمود.
    طبعاً يمكن استخدام هذه الدالة مع القيم الرقمية فقط.


    الشكل العام لإستخدامها

    SELECT AVG(column_name)
    FROM table_name
    WHERE condition;
    	

    إذاً نستدعي الدالة AVG() مباشرةً بعد الكلمة SELECT.
    إسم العمود الذي نريد الحصول على متوسط القيم الرقمية الموجودة فيه نكتبه بين أقواس الدالة مكان الكلمة column_name.

    تجهيز قاعدة البيانات التي سنطبق عليها

    قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash و تنشئ فيها جدول إسمه employees يحتوي على بيانات 10 موظفين.

    الإستعلام

    -- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها
    DROP DATABASE IF EXISTS harmash;
    
    -- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها
    CREATE DATABASE harmash;
    
    -- harmash هنا قمنا بتحديد أن أي إستعلام جديد سيتم تنفيذه على قاعدة البيانات
    USE harmash;
    
    -- يتألف من 6 أعمدة employees هنا قمنا بإنشاء جدول جديد إسمه
    -- لأننا قمنا بتحديدها قبل إستدعاء هذا الأمر harmash سيتم إنشاء هذا الجدول بداخل قاعدة البيانات
    CREATE TABLE employees (
    	id         INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        first_name VARCHAR(50),
        last_name  VARCHAR(20),
    	is_married BOOLEAN,
    	salary     DECIMAL(7,2),
    	birthday   Date
    );
    
    -- هنا قمنا بإضافة 10 أسطر في الجدول, أي أضفنا معلومات 10 موظفين
    -- لاحظ أننا لم نحدد أسماء الأعمدة التي سنضع فيها البيانات لأننا قمنا بملئ جميع المعلومات
    -- في البداية هو حتى يكون عدد القيم الموضوعة يساوي عدد أعمدة الجدول null سبب وضع الكلمة
    -- ستقوم قاعدة البيانات بوضع رقم تعرفة مختلف لكل سطر null مكان الكلمة
    INSERT INTO employees VALUES (null, "Ahmad", "Alhazem", false, 800, "1990-10-23");
    INSERT INTO employees VALUES (null, "Rami", "Algharib", false, 750, "1992-05-08");
    INSERT INTO employees VALUES (null, "Said", "Alnaja", true, 900, "1988-07-12");
    INSERT INTO employees VALUES (null, "Noura", "Jamali", false, 845, "1994-12-04");
    INSERT INTO employees VALUES (null, "Amani", "Sarrouf", true, 1000, "1991-10-27");
    INSERT INTO employees VALUES (null, "Mhamad", "Harmush", false, 700, "1993-11-12");
    INSERT INTO employees VALUES (null, "Ahmad", "Asaadi", true, 850, "1995-03-10");
    INSERT INTO employees VALUES (null, "Mostafa", "Shawki", true, 920, "1990-02-14");
    INSERT INTO employees VALUES (null, "Jana", "Alkassem", false, 780, "1991-08-12");
    INSERT INTO employees VALUES (null, "Houssam", "Zahrani", true, 880, "1985-09-20");
    		

    بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash و إنشاء الجدول employees بداخلها.
    قم بالنقر على إسم قاعدة البيانات harmash من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.


    البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول employees.

    id first_name last_name is_married salary birthday
    1 Ahmad Alhazem 0 800.00 1990-10-23
    2 Rami Algharib 0 750.00 1992-05-08
    3 Said Alnaja 1 900.00 1988-07-12
    4 Noura Jamali 0 845.00 1994-12-04
    5 Amani Sarrouf 1 1000.00 1991-10-27
    6 Mhamad Harmush 0 700.00 1993-11-12
    7 Ahmad Asaadi 1 850.00 1995-03-10
    8 Mostafa Shawki 1 920.00 1990-02-14
    9 Jana Alkassem 0 780.00 1991-08-12
    10 Houssam Zahrani 1 880.00 1985-09-20

    أمثلة حول استخدام الدالة AVG()


    المثال الأول

    الإستعلام التالي يقوم بعرض متوسط الرواتب التي يتم إعطاءها للموظفين في الشركة كل شهر.
    ما فعلناه لحساب متوسط الرواتب هو حساب متوسط جميع الرواتب الموضوعة في العمود salary.

    الإستعلام

    SELECT AVG(salary) AS 'Average Salary'    -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة salary هنا قمنا بجلب متوسط القيم الموجودة في العامود
    FROM employees;                           -- salary هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
    ملاحظة: الرقم يظهر فيه أكثر من رقمين بعد الفاصلة لأن عمليات الجمع و القسمة التي أجرتها الدالة AVG() أدت إلى إرجاع النتيجة بالنوع FLOAT.

    Average Salary
    842.500000


    المثال الثاني

    الإستعلام التالي هو نفس الإستعلام السابق تماماً مع فرق واحد و هو أننا قمنا بتعديل شكل القيمة التي سيتم إرجاعها في النتيجة بواسطة الدالة FORMAT() حتى تظهر رقمين فقط بعد الفاصلة لتكون مشابهة للرواتب المخزنة في العمود salary.

    الإستعلام

    SELECT FORMAT(AVG(salary), 2) AS 'Average Salary ($)'    -- مع تغيير شكل القيمة التي سترجع و إسم العمود الذي سيتم عرضه في النتيجة salary هنا قمنا بجلب متوسط القيم الموجودة في العامود
    FROM employees;                                          -- salary هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
    نلاحظ أن الرقم أصبح يظهر فيه رقمين فقط بعد الفاصلة.

    Average Salary ($)
    842.50


    المثال الثالث

    الإستعلام التالي يقوم بعرض متوسط الرواتب التي يتم إعطاءها للموظفين المتزوجين فقط كل شهر.
    ما فعلناه لحساب متوسط رواتب المتزوجين فقط هو وضع شرط أن الحقل is_married يجب أن يساوي 1 في السطر الذي سيتم حساب أخذ قيمة salary منه.
    إذاً, في أي سطر لا تكون قيمة الحقل is_married تساوي 1 سيتم تجاهل الحقل salary الموضوعة في نفس السطر.
    كما أننا قمنا بتعديل شكل القيمة التي سيتم إرجاعها في النتيجة بواسطة الدالة FORMAT() حتى تظهر رقمين فقط بعد الفاصلة لتكون مشابهة للرواتب المخزنة في العمود salary.

    الإستعلام

    SELECT FORMAT(AVG(salary), 2) AS 'Average Salary ($)'    -- مع تغيير شكل القيمة التي سترجع و إسم العمود الذي سيتم عرضه في النتيجة salary هنا قمنا بجلب متوسط القيم الموجودة في العامود
    FROM employees                                           -- salary هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
    WHERE is_married = 1;                                    -- في ناتج الجمع salary يجب أن يساوي 1 حتى يتم حساب قيمة الحقل is_married هنا قمنا بتحديد أن الحقل
    		

    سنحصل على النتيجة التالية عند تنفيذ الإستعلام.

    Average Salary For Married ($)
    910.50
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب