Sobes.tech
Middle — Senior

SQL-də daxili funksiyasız medianı necə hesablamaq olar? Cədvəldə sətirlərin sayını necə hesablamaq olar? Pəncərə funksiyaları haqqında bilirsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

SQL-də daxili funksiyası olmayan median pəncərə funksiyaları və ya alt sorğular istifadə edilərək hesablanabilir. Məsələn, value adlı sayısal sütunu olan cədvəl üçün:

SELECT AVG(value) AS median FROM (
  SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
  FROM your_table
) sub
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);

Burada:

  • ROW_NUMBER() satırları artan dəyərə görə nömrələyir.
  • COUNT(*) OVER () ümumi satır sayını hesablayır.
  • İki mərkəzi elementin orta qiyməti alınır (cüt sayda) və ya tək mərkəzi element (tək sayda).

Cədvəldəki satırların sayını hesablamaq çox sadədir:

SELECT COUNT(*) FROM your_table;

Pəncərə funksiyaları, cari satırla əlaqəli satır dəstində hesablama aparan və nəticəni tək satıra endirməyən funksiyalardır. Onlar sıralama, hərəkətli cəm, median və s. üçün faydalıdır.

Pəncərə funksiyasına nümunə:

SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;

Bu, value dəyərinə görə satırları artan sırayla nömrələyəcək.