Oracle SQL-də agregat funksiyalar
-
Agregat funksiyalar, Oracle SQL-də bir və ya bir neçə sətirdən ibarət məlumatları analiz etmək və ümumi nəticə çıxarmaq üçün istifadə olunur. Bu funksiyalar cədvəllərdəki dəyərləri qruplaşdırmaq, hesablamaq və filtrasiya etmək imkanı verir.
Aşağıdakı ən çox istifadə olunan agregat funksiyalarla tanış olaq:
İlk öncə misalları rahat göstərmək üçün
employees
adından cədvəl yaradaq və məlumatları ora əlavə edəkEMPLOYEE_ID NAME SALARY DEPARTMENT_ID 1 John Smith 3500 10 2 Jane Doe 1600 10 3 Emily Davis 2000 20 4 Michael Brown 2500 30 CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, name VARCHAR2(100), salary NUMBER, department_id NUMBER ); INSERT INTO employees (employee_id, name, salary, department_id) VALUES (1, 'John Smith', 3500, 10), (2, 'Jane Doe', 1600, NULL), (3, 'Emily Davis', 2000, 20), (4, 'Michael Brown', 2500, 30);
COUNT()
– Sətirlərin sayını hesablayırBu funksiya müəyyən bir sütundakı və ya bütün cədvəldəki sətirlərin sayını verir.
Sintaksis:
SELECT COUNT(*) FROM employees; --4
Bütün işçilərin sayını qaytarır.
Sütun səviyyəsində:
SELECT COUNT(department_id) FROM employees; --3
NULL
olmayandepartment_id
sütunlarının sayını qaytarır.
SUM()
– Toplam hesablayırBu funksiya ədədi dəyərləri toplayır.
SELECT SUM(salary) FROM employees; --9600
Bütün işçilərin ümumi maaşını qaytarır.
AVG()
– Orta dəyəri hesablayırBu funksiya ədədi sütun üzrə orta (average) dəyəri verir.
SELECT AVG(salary) FROM employees; --2400
Bütün işçilərin orta maaşını göstərir.
MIN()
– Ən kiçik dəyəri tapırƏn aşağı ədədi və ya əlifba sıralamasına görə minimum dəyəri qaytarır.
SELECT MIN(salary) FROM employees; --1600
Ən az maaşı olan işçinin maaşını qaytarır.
SELECT MIN(name) FROM employees; --Emily Davis
Əlifba sırasına görə ilk gələn adı göstərir.
MAX()
– Ən böyük dəyəri tapırƏn yüksək dəyəri qaytarır.
SELECT MAX(salary) FROM employees; --3500
Ən yüksək maaşı göstərir.
GROUP BY
ilə agregat funksiyalarAgregat funksiyaları
GROUP BY
ilə birlikdə istifadə edərək məlumatları qruplar üzrə analiz etmək mümkündür.SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
Hər şöbə üçün orta maaş göstərilir.
HAVING
ilə agregat filtrAgregat nəticələri filtrasiya etmək üçün
HAVING
istifadə olunur.WHERE
fərdi sətirlər üçün,HAVING
isəGROUP BY
nəticələri üçün tətbiq edilir.SELECT department_id, COUNT(*) FROM employees GROUP BY department_id HAVING COUNT(*) > 5;
Yalnız 5-dən çox işçisi olan şöbələri göstərir.
Nəticə
Oracle SQL-də agregat funksiyalar məlumatların xülasəsini çıxarmaq, ümumi mənzərəni görmək və qruplar üzrə analiz aparmaq üçün çox faydalıdır.
GROUP BY
,HAVING
kimi əmr və funksiyalarla birlikdə istifadə olunduqda, çox güclü hesabatlar və analizlər aparmaq mümkündür.
Bilik paylaşdıqca artan bir sərvətdir