CodeGym /Kurslar /SQL SELF /Aqreqat funksiyalarına giriş

Aqreqat funksiyalarına giriş

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

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:

  1. COUNT() — sətrlərin sayını sayır.
  2. SUM() — rəqəm sütununun dəyərlərini toplayır.
  3. AVG() — orta dəyəri hesablayır.
  4. MIN() — minimum dəyəri tapır.
  5. MAX() — maksimum dəyəri tapır.

Aqreqat funksiyaların istifadəsinə nümunələr

  1. 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.

  1. 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.

  1. 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.

  1. MIN()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()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.

2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Endirimli məhsullar siyahısı
Endirimli məhsullar siyahısı
2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Abunəlik statusunun və bitmə tarixinin yoxlanılması
Abunəlik statusunun və bitmə tarixinin yoxlanılması
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION