Aqreqat funksiyaları... Bu şeylər data analizində əsl sehrbazlardır! Onlar milyonlarla sətri sıxılmış və başa düşülən nəticələrə çevirirlər. Onların köməyi ilə biz saya, minimum və maksimum tapa, orta dəyərləri hesablaya və bir çox başqa əməliyyatlar edə bilirik. İndi isə gəlin hər şeyi bir-bir başa salım.
Aqreqat funksiyaları — bunlar SQL-də xüsusi funksiyalardır, hansı ki, sətrlər qrupları üzərində əməliyyat aparır və bir nəticə qaytarır. Analogiya üçün, bu elə bil ki, səhər kofe statistikası topladın: məsələn, bir həftədə neçə fincan içmisən, şəkər əlavə etmisən ya yox, neçə gün ardıcıl qaymaq əlavə etmisən və s.
Aqreqat funksiyaların həll etdiyi məsələlərə nümunələr:
- Cədvəldə ümumi qeyd sayını hesablamaq.
- Rəqəm sütununda minimum və ya maksimum dəyərləri tapmaq.
- Bir sütundakı dəyərləri toplamaq.
- Bütün sütun dəyərlərinin ortasını hesablamaq.
- Unikal dəyərləri seçmək.
Bu necə işləyir "qapağın altında"?
SQL aqreqat funksiyanı SELECT ilə data seçildikdən sonra icra edir. Məsələn, sən SUM() və ya AVG() yazanda, SQL əvvəlcə datanı toplayır, sonra isə yalnız seçilmiş sətrlər üçün hesablamanı aparır.
PostgreSQL-də əsas aqreqat funksiyalar
Gəlin praktikaya keçək və top5 qəhrəmanımıza baxaq:
COUNT()— sətrlərin sayını sayır.SUM()— rəqəm sütununun dəyərlərini toplayır.AVG()— orta dəyəri hesablayır.MIN()— minimum dəyəri tapır.MAX()— maksimum dəyəri tapır.
Aqreqat funksiyaların istifadəsinə nümunələr
COUNT()ilə sətrlərin sayılması
COUNT() funksiyası cədvəldə ümumi sətr sayını və ya konkret sütunda boş olmayan dəyərlərin sayını hesablamağa imkan verir.
Nümunə: təsəvvür et, bizdə students adlı cədvəl var, burada tələbələr haqqında məlumat saxlanılır:
| id | name | age | grade |
|---|---|---|---|
| 1 | Otto Art | 20 | 85 |
| 2 | Maria Chi | 22 | 90 |
| 3 | Alex Lin | 21 | 78 |
| 4 | Anna Song | 23 | NULL |
Ümumi tələbə sayını hesablayaq:
SELECT
COUNT(*) AS total_students
FROM students;
Nəticə:
| total_students |
|---|
| 4 |
İndi isə grade göstərilən tələbələrin sayını hesablayaq:
SELECT
COUNT(grade) AS students_with_grades
FROM students;
Nəticə:
| students_with_grades |
|---|
| 3 |
Niyə belə oldu? Çünki COUNT(column) NULL dəyərləri saymır, onları atlayır.
SUM()ilə toplama
SUM() funksiyası rəqəm sütunundakı bütün dəyərləri toplamaq üçün istifadə olunur.
Nümunə: gəlin tələbələrimizin toplam balını öyrənək.
SELECT
SUM(grade) AS total_grades
FROM students;
Nəticə:
| total_grades |
|---|
| 253 |
Qeyd: Əgər sütunda NULL varsa, onlar toplama zamanı sadəcə sayılmır.
AVG()ilə orta dəyər
AVG() funksiyası sütundakı bütün rəqəm dəyərlərinin ortasını hesablayır.
Nümunə: tələbələrin orta balını hesablayaq.
SELECT
AVG(grade) AS average_grade
FROM students;
Nəticə:
| average_grade |
|---|
| 84.33 |
Görürsən ki, NULL yenə də sayılmır.
MIN()vəMAX()ilə minimum və maksimum
Bəzən ən kiçik və ya ən böyük dəyəri tapmaq lazımdır. Bunun üçün MIN() və MAX() var.
Nümunə: ən gənc və ən yaşlı tələbəni tapaq.
SELECT
MIN(age) AS youngest_student,
MAX(age) AS oldest_student
FROM students;
Nəticə:
| youngest_student | oldest_student |
|---|---|
| 20 | 23 |
Bu funksiyalar haqqında daha ətraflı növbəti leksiyalarda danışacağıq.
NULL ilə tanışlıq
NULL haqqında ayrıca leksiya olacaq, amma çox qısa desək, NULL — dəyərin olmamasıdır. Heç nə. Boşluq. Nullik, necə varsa!
Tutaq ki, bizdə students adlı cədvəl var, burada tələbələr haqqında məlumat saxlanılır:
| id | name | age | grade | hobbie |
|---|---|---|---|---|
| 1 | Otto Art | 20 | 85 | |
| 2 | Maria Chi | 22 | 90 | Rəqs |
| 3 | Alex Lin | 21 | 78 | |
| 4 | Anna Song | 23 |
Ad və yaş həmişə var, amma qiymət və hobbi olmaya bilər. Əgər cədvəldə hüceyrədə heç bir dəyər yoxdursa, deyirlər ki, o NULL saxlayır. NULL nə rəqəmdir, nə də sətirdir, bu xüsusi kodlu işarədir, hansı ki, hər hansı dəyərin olmamasını göstərir.
GO TO FULL VERSION