CodeGym /Kurslar /SQL SELF /Analitik funksiyalara giriş

Analitik funksiyalara giriş

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

Gəlin həyatdan sadə bir nümunə ilə başlayaq. Təsəvvür elə, sən bir kofe dükanının sahibisən. Hər gün müştərilər gəlir, sifariş verir və sən bu dataları qeyd edirsən. Bir müddət sonra bilmək istəyirsən: hansı içkilər ən populyardır? Son üç ayda orta çek nə qədər olub? Həftənin hansı günləri ən çox gəlir gətirir?

Bu suallar — analitika məsələlərinin nümunəsidir. Analitika burada "data yığını"nı faydalı məlumata çevirməyə kömək edir. Database daxilində analitika ilə işləmək isə heç bir sehr deyil, sadəcə belə suallara cavab verməyə imkan verən alətlər toplusudur.

Analitika adətən belə məsələləri həll edir:

  • Açar metriklərin analizi (məsələn, gəlir, orta çek, sifariş sayı).
  • Hesabatların qurulması: cədvəllər, qrafiklər, diaqramlar.
  • Trend-lərin monitorinqi: göstəricilər zamanla necə dəyişir.
  • Dataların müqayisəsi (məsələn, bir regionun digər regionla müqayisəsi).

Bu, əsaslandırılmış biznes qərarları vermək, prosesləri optimallaşdırmaq və ya hətta gələcək nəticələri proqnozlaşdırmaq üçün vacibdir.

PL/pgSQL-in analitikadakı rolu

İndi artıq başa düşürük ki, analitika niyə lazımdır, belə bir sual yaranır: niyə bunun üçün PL/pgSQL uyğundur? Axı datanı Excel-ə export edib orada hesablamaq olar! Düzdür?

PL/pgSQL imkan verir:

  • Hesablamaları avtomatlaşdırmaq. Əgər bir işi avtomatlaşdırmaq mümkündürsə, niyə əl ilə təkrar edəsən?
  • Böyük həcmdə datanı birbaşa server tərəfində işləmək. Serverdə hesabatların generasiyası böyük datanın client tətbiqlərinə ötürülməsinə ehtiyac qoymur.
  • Minimal yük ilə güclü sorğular yaratmaq. Böyük cədvəllərlə tez və effektiv işləmək olur.

Nümunə: hər gün satışlar üzrə hesabatı avtomatik generasiya edib cədvəldə saxlamaq olar, əllə bunu etmək lazım deyil.

Analitikanın avtomatlaşdırılması üçün prosedurlardan istifadə üstünlükləri

Əl ilə analiz prosesi:

  1. Databasedən datanı götür.
  2. Onları hansısa cədvəldə işlət.
  3. Nəticələri saxla. PL/pgSQL ilə avtomatlaşdırma:
  4. Bir dəfə prosedur yaz.
  5. Cədvəl üzrə işə sal.
  6. Nəticələrdən həzz al.

Tamamilə başqa səviyyə rahatlıq, düzdür? :)

Analitik funksiyalarla həll olunan məsələlərə nümunələr

Budur, analitik funksiyalarla həll edə biləcəyin bir neçə məsələ. Bu nümunələr sənə göstərəcək ki, analitik funksiyalar heç də abstrakt bir şey deyil, çox faydalı alətdir.

Açar metriklərin hesablanması

Açar metriklər — biznesin vəziyyətini qiymətləndirməyə kömək edən göstəricilərdir. Məsələn:

  • Orta çek: müştəri orta hesabla nə qədər xərcləyir.
  • Müəyyən dövr üçün ümumi sifariş sayı.
  • Məhsul kateqoriyaları üzrə satışdan gəlir.

Orta çek üçün SQL-sorğu nümunəsi:

SELECT 
    SUM(order_amount) / COUNT(*) AS average_order
FROM 
    orders
WHERE 
    order_date > CURRENT_DATE - INTERVAL '3 months';

Zaman sıraları və trend-lərin qurulması

Tutaq ki, satışların günlər üzrə necə dəyişdiyini bilmək istəyirsən. Bunun üçün datanı tarixə görə qruplaşdırıb zaman sıraları qurmaq olar.

SELECT
    order_date, 
    SUM(order_amount) AS daily_sales
FROM 
    orders
GROUP BY 
    order_date
ORDER BY 
    order_date;

Dövrlər üzrə dataların müqayisəsi

İndi isə təsəvvür elə, oktyabr və sentyabr ayları üzrə gəliri müqayisə etmək istəyirsən:

SELECT 
    EXTRACT(MONTH FROM order_date) AS month, 
    SUM(order_amount) AS total_sales
FROM 
    orders
WHERE 
    order_date BETWEEN '2023-09-01' AND '2023-10-31'
GROUP BY 
    EXTRACT(MONTH FROM order_date);

Belə yanaşma imkan verir nəticə çıxarmağa: aylar arasında nə dəyişdi? Niyə sentyabr daha uğurlu oldu? Yoxsa, bəlkə, əksinə?

Bu real həyatda necə işləyir?

Real praktikada analitika aşağıdakı ssenarilərdə tətbiq olunur:

  1. Marketinqdə: hansı kanalların daha çox müştəri gətirdiyini anlamaq üçün.
  2. Maliyyədə: gəlir, zərər və proqnozlaşdırma üçün.
  3. Proqram təminatı inkişafında: tətbiqlərin performansını analiz etmək üçün.
  4. Oyun sənayesində: istifadəçi davranışını analiz edib fərdi təkliflər qurmaq üçün.

İndi artıq bilirsən ki, analitik funksiyalar nə üçündür, növbəti mühazirələrdə texniki detallara — məsələn, window funksiyaları və aggregat-lardan hesabatlar qurmağa — baş vuracağıq. Hələlik isə təsəvvür elə, hansı metrikləri analiz etmək istərdin və bu sənin layihənə necə kömək edə bilərdi!

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