Sobes.tech
Junior — Middle

Դուք ունե՞ք փորձ SQL հարցումների ժամանակ պատուհանային ֆունկցիաների օգտագործման հետ։

sobes.tech AI

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

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

Հիմնական պատուհանի ֆունկցիաներ՝

  • ROW_NUMBER() — տողերի համարանիշը պատուհանում
  • RANK(), DENSE_RANK() — դասակարգում հաշվի առնելով հավասարությունները
  • SUM(), AVG(), COUNT() — ամփոփիչ ֆունկցիաներ պատուհանի վրա

Օրինակ՝ ստանալ աշխատակիցների ցանկ՝ նրանց աշխատավարձերով և բաժնի համարանիշով՝ նվազման կարգով:

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

Այստեղ, PARTITION BY բաժանում է տվյալները բաժինների վրա, իսկ ORDER BY սահմանում է կարգը յուրաքանչյուր բաժնում: Պատուհանի ֆունկցիաները թույլ են տալիս կատարել բարդ վերլուծական հարցումներ՝ առանց մանրամասների կորուստի։