Sobes.tech
Junior — Middle

Կարող եք բացատրել դաշտային ֆունկցիաների կոնցեպցիան տվյալների բազայի կառավարման համակարգերում?

sobes.tech AI

Պատասխան AI-ից

Վինդո ֆունկցիաներ (window functions) տվյալների բազայի կառավարման համակարգերում (DBMS) թույլ են տալիս կատարել հաշվարկներ ընթացիկ տողի հետ կապված տողերի հավաքածուի վրա, առանց արդյունքների խմբագրման։ Դրանք օգտակար են վերլուծական և բարդ հարցումների համար, որտեղ անհրաժեշտ է ստանալ ամփոփագրեր, դասակարգումներ, շարժական գումարներ և այլն, միաժամանակ պահպանելով յուրաքանչյուր տողի մանրամասները:

Աշխատանքի սկզբունքը՝

  • Վանդոյի (տողերի հավաքածու) սահմանում է OVER() կառուցվածքով, որտեղ կարող է նշվել PARTITION BY (խմբավորում) և ORDER BY (միջին դասակարգում խմբի ներսում):
  • Ամեն տողի համար հաշվարկվում է ֆունկցիա վանդոյում, օրինակ՝ գումար, միջին, տողի համարը և այլն:

SQL-ի օրինակ՝

SELECT
  employee_id,
  department_id,
  salary,
  RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;

Այստեղ յուրաքանչյուր աշխատակցի համար հաշվարկվում է աշխատավարձի դասակարգումը նրա բաժնում, և յուրաքանչյուր տող մնում է արդյունքում։