CodeGym /Kurslar /SQL SELF /SUM() ilə məlumatların cəmlənməsi — sintaksis və nümunələ...

SUM() ilə məlumatların cəmlənməsi — sintaksis və nümunələr

SQL SELF
Səviyyə , Dərs
Mövcuddur

Təsəvvür elə... Səndə supermarketdən alınan uzun bir alış-veriş siyahısı var. Sonda nə qədər pul xərclədiyini hesablamaq istəyirsən. Əl ilə toplamayacaqsan axı, düzdür? Satıcıların isə hər şey artıq bazada saxlanılır. Ona görə də sən düzgün məbləğlə nəticə çekini alırsan. Yəqin ki, onların tətbiqində bu işdə bugünkü leksiyamızın qəhrəmanı — SUM() funksiyası kömək edir! Bu, ədədi tipli sütundakı dəyərləri toplamağa imkan verən aqreqat funksiyadır.

SUM() sintaksisi

SUM() funksiyası adı kimi sadə görünür, amma gəlin hər hissəsini ayrıca anlayaq:

SELECT SUM(sutun)
FROM cedvel;

Funksiya göstərilən sütundakı bütün dəyərləri götürüb cəmləyir. Amma düzünü deyək: burada heç bir mətn və ya tarix toplaması olmayacaq! Yalnız ədədlər.

SUM() istifadəsinə nümunələr

Gəlin sadə bir nümunədən başlayaq. Biz salaries adlı cədvəllə işləyəcəyik, burada işçilərin maaşları saxlanılır:

employee_id salary
1 50000
2 60000
3 55000
4 75000

Nümunə 1: Bütün maaşların cəmlənməsi

Şirkətin ümumi maaş fondunu bilmək istəyirsən. Bunu belə edirsən:

SELECT SUM(salary) AS total_salary
FROM salaries;

Nəticə:

total_salary
240000

Burada nə baş verdi? PostgreSQL salary sütunundakı bütün dəyərləri (50000 + 60000 + 55000 + 75000) topladı və nəticəni total_salary adlı yeni sütunda qaytardı.

Nümunə 2: Şərtlə cəmləmə

Tutaq ki, yalnız 55,000-dən çox maaş alan işçilərin ümumi maaşını bilmək istəyirsən. Sevimli WHERE operatorumuzu xatırlayaq:

SELECT SUM(salary) AS high_salary_total
FROM salaries
WHERE salary > 55000;

Nəticə:

high_salary_total
135000

Burada nə baş verdi? Əvvəlcə PostgreSQL WHERE salary > 55000 filtrini tətbiq etdi, yalnız 60000 və 75000 maaşlı sətrləri saxladı. Sonra bu iki maaşı topladı (60000 + 75000).

3. SUM() funksiyasının xüsusiyyətləri

NULL SUM()-a necə təsir edir? Artıq gördüyümüz kimi, NULL — "heç nə" deməkdir və SUM() onu hesablara qatmir. Baxaq cədvələ:

employee_id salary
1 50000
2 60000
3 NULL
4 75000

Əgər ümumi maaş fondunu bilmək istəsək:

SELECT SUM(salary) AS total_salary
FROM salaries;

Nəticə:

total_salary
185000

Niyə "185000", "NULL" yox? PostgreSQL sadəcə NULL-u toplama zamanı saymır.

SUM() ilə mürəkkəb sorğulara nümunələr

Nümunə 1: Bir sorğuda cəmləmə və filtrasiya

Təsəvvür elə sales adlı cədvəlin var, burada satış məlumatları saxlanılır. Onun strukturu belədir:

product_id amount
1 150
2 200
3 NULL
1 100

Yalnız birinci məhsul üçün (product_id = 1) amount satışlarının ümumi məbləğini bilmək istəyirsən:

SELECT SUM(amount) AS total_sales
FROM sales
WHERE product_id = 1;

Nəticə:

total_sales
150

Nümunə 2: Cəm və əlavə hesablamalar

Yenə salaries cədvəli ilə işləyirik. Maaş fondu 200,000-dən nə qədər artıqdır, bilmək istəyirsən:

SELECT SUM(salary) - 200000 AS surplus
FROM salaries;

Nəticə:

surplus
40000

SUM() istifadə edərkən tipik səhvlər

SUM() funksiyasını ədədi olmayan məlumatlar üçün istifadə etmək: təsadüfən, məsələn, mətn dəyərlərini toplamağa çalışsan, səhv alacaqsan. Sütundakı məlumat tiplərini yoxlamağı unutma.

NULL-u nəzərə almamaq: çox vaxt yeni başlayanlar NULL-u unudurlar və elə bilirlər ki, o da hesablara qatılır. Bu isə gözlənilməz nəticələrə səbəb ola bilər.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION