SQLحساب ناتج جمع قيم العمود بواسطة الدالة SUM()
- الدالة
SUM()
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول استخدام الدالة
SUM()
الدالة SUM()
الدالة SUM()
تستخدم للحصول على ناتج جمع قيم الحقول الغير فارغة الموجودة في العمود.
طبعاً يمكن استخدام هذه الدالة مع القيم الرقمية فقط.
الشكل العام لإستخدامها
SELECT SUM(column_name) FROM table_name WHERE condition;
إذاً نستدعي الدالة SUM()
مباشرةً بعد الكلمة 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 |
أمثلة حول استخدام الدالة SUM()
المثال الأول
الإستعلام التالي يقوم بعرض إجمالي الرواتب التي يتم إعطاءها للموظفين في الشركة كل شهر.
ما فعلناه لحساب إجمالي الرواتب هو حساب ناتج جمع جميع الرواتب الموضوعة في العمود salary
.
الإستعلام
SELECT SUM(salary) AS 'Total Salaries ($)' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة salary هنا قمنا بجلب ناتج جمع جميع القيم الموجودة في العامود FROM employees; -- salary هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
Total Salaries ($) |
---|
8425.00 |
المثال الثاني
الإستعلام التالي يقوم بعرض إجمالي الرواتب التي يتم إعطاءها للموظفين المتزوجين كل شهر.
ما فعلناه لحساب إجمالي رواتب المتزوجين فقط هو وضع شرط أن الحقل is_married
يجب أن يساوي 1
في السطر الذي سيتم حساب أخذ قيمة salary
منه.
إذاً, في أي سطر لا تكون قيمة الحقل is_married
تساوي 1
سيتم تجاهل الحقل salary
الموضوعة في نفس السطر.
الإستعلام
SELECT SUM(salary) AS 'Total Salaries For Married ($)' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة salary هنا قمنا بجلب ناتج جمع جميع القيم الموجودة في العامود FROM employees -- salary هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود WHERE is_married = 1; -- في ناتج الجمع salary يجب أن يساوي 1 حتى يتم حساب قيمة الحقل is_married هنا قمنا بتحديد أن الحقل
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
Total Salaries For Married ($) |
---|
4550.00 |