CodeGym /Kurslar /SQL SELF /Minimum və Maksimum dəyərlər: MIN()

Minimum və Maksimum dəyərlər: MIN()MAX()

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

Gəlin, datadakı ekstremallara baş vuraq — minimum və maksimum dəyərləri tapmaq. Narahat olma, SQL səndən nəsə tamamilə yeni bir şey öyrənməyini istəmir, amma ən böyük və ən kiçik dəyərləri tapmağı öyrənəcəyik. Bu funksiyalar hər yerdə istifadə olunur: IMDb-də film reytinqlərinin analizindən tutmuş Marsda minimum temperaturun hesablanmasına qədər.

MIN()MAX() — bunlar aggregate funksiyalardır və verilənlər toplusundan minimum və maksimum dəyərləri qaytarır. Onlar sanki ekstremum ovçularıdır: MIN() ən kiçik elementi tapır, MAX() isə əksinə, ən böyüyünü. Onların istifadəsi təkcə rəqəmlərlə məhdudlaşmır: minimum və maksimum string və ya tarix də tapa bilərsən.

-- MIN və MAX funksiyalarının ümumi forması
SELECT 
    MIN(column_name) AS min_value,
    MAX(column_name) AS max_value
FROM table_name;

Çox rahat və sadə! İndi isə bu magiyanın müxtəlif situasiyalarda necə işlədiyinə baxaq.

Sintaksis və əsas nümunələr

Rəqəmli datalar

Tutaq ki, bizdə employees adlı cədvəl var və orada işçilərin maaşları (salary) saxlanılır.

Biz minimum və maksimum maaşı bilmək istəyirik.

employees cədvəli

id name salary
1 Anna Song 45000
2 Otto Art 30000
3 Maria Chi 120000
4 Alex Lin 90000
5 Eva Tan 60000
-- Rəqəmli datalar üçün nümunə
SELECT 
    MIN(salary) AS min_salary,
    MAX(salary) AS max_salary
FROM employees;

Nəticə

min_salary max_salary
30000 120000

Mətn dataları

MIN()MAX() funksiyalarını mətn dataları ilə də istifadə edə bilərsən.

Onlar əlifba sırasına görə müqayisə olunur (bəli, hətta hərflər də "ən kiçik" və "ən böyük" ola bilər).

Tutaq ki, students adlı cədvəldə name sütununda tələbələrin adları saxlanılır.

students cədvəli

id name
1 Anna
2 Otto
3 Maria
4 Ben
5 Zoe
-- Mətn dataları üçün nümunə
SELECT 
    MIN(name) AS first_name_in_order,
    MAX(name) AS last_name_in_order
FROM students;

Nəticə

first_name_in_order last_name_in_order
Anna Zoe

Tarix və vaxt
events cədvəlində ən erkən və ən gec tarixi tapırıq.

events cədvəli

id event_name event_date
1 New Year Party 2023-01-01
2 Summer Fest 2023-06-15
3 Halloween Bash 2023-10-31
4 Year End Gala 2023-12-31
-- Tarixlə işləmək üçün nümunə
SELECT 
    MIN(event_date) AS earliest_date,
    MAX(event_date) AS latest_date
FROM events;

Nəticə

earliest_date latest_date
2023-01-01 2023-12-31

MIN()MAX() funksiyalarını NULL olan cədvəllərdə istifadə etmək

Əgər sütunda NULL dəyərlər varsa, rahat ol: SQL onları hesablama zamanı saymır.

Yəni MIN()MAX() yalnız "normal" dəyərlərlə işləyəcək.

employees_with_null cədvəli

id name salary
1 Otto 30000
2 Maria NULL
3 Anna 120000
4 John NULL
-- NULL olan cədvəl
SELECT 
    MIN(salary) AS min_salary,
    MAX(salary) AS max_salary
FROM employees_with_null;

Əgər salary sütununda NULL olan qeydlər varsa, onlar sadəcə sayılmır.

min_salary max_salary
30000 120000

Amma əgər BÜTÜN sütun NULL olarsa, nəticə də NULL olacaq.

Real tapşırıqlarda MIN()MAX() istifadə nümunələri

Ən yaşlı və ən gənc işçini tapmaq

employees cədvəli

id name birth_date
1 Otto 1980-05-10
2 Maria 1990-11-20
3 Anna 1975-03-15
4 John 2000-08-01

employees cədvəlində birth_date sütunu var və burada işçilərin doğum tarixləri saxlanılır. Gəlin ən yaşlı və ən gənc işçini tapaq.

SELECT
    MIN(birth_date) AS oldest_employee,
    MAX(birth_date) AS youngest_employee
FROM employees;

Nəticə:

oldest_employee youngest_employee
1975-03-15 2000-08-01

Satışların analizi

id amount
1 150.00
2 75.50
3 200.00
4 120.00
5 500.00
6 90.00

sales cədvəlində amount sütunu var və burada satış məbləğləri saxlanılır. Minimum və maksimum satış məbləğini tapırıq.

SELECT
    MIN(amount) AS smallest_sale,
    MAX(amount) AS largest_sale
FROM sales;

Sorgunun nəticəsi

smallest_sale largest_sale
75.50 500.00

Ən ilk və ən son sifarişləri tapmaq

Əgər səndə orders cədvəli və order_date sütunu varsa, ilk və son sifariş tarixini asanlıqla tapa bilərsən.

Əsas orders cədvəli

order_id customer_id order_date amount
101 1 2023-01-15 10:23:00 250.00
102 2 2023-02-10 14:45:00 150.00
103 3 2023-01-05 09:10:00 300.00
104 1 2023-03-22 16:30:00 500.00
105 4 2023-01-25 11:00:00 120.00
SELECT
    MIN(order_date) AS first_order,
    MAX(order_date) AS last_order
FROM orders;

Sorgunun nəticəsi:

first_order last_order
2023-01-05 09:10:00 2023-03-22 16:30:00

MIN()MAX() funksiyalarının özəllikləri

Mətnlərin müqayisəsi: string-lərlə işləyəndə MIN()MAX() onları əlifba sırasına görə müqayisə edir.

NULL ilə işləmək: Əgər sütunda başqa dəyərlər varsa, NULL sayılmır. Amma bütün dəyərlər NULL olsa, nəticə də NULL olacaq.

Tarixlərin müqayisəsi: SQL təkcə ilin rəqəmini yox, ay, gün, saat, dəqiqə də nəzərə alır.

1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Məlumatların aqreqasiyası
Məlumatların aqreqasiyası
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION