Junior — Middle
Ar turite patirties dirbant su SQL užklausomis naudojant lango funkcijas?
sobes.tech AI
Atsakymas iš AI
Taip, dirbdamas su SQL užklausomis, naudojausi lango funkcijomis (window functions). Jos leidžia atlikti skaičiavimus apie eilutes, susijusias su dabartine eilute, negrupuojant rezultatų, kas yra naudinga analizei ir sudėtingoms užklausoms.
Pagrindinės lango funkcijos:
ROW_NUMBER()— eilutės numeravimas langeRANK(),DENSE_RANK()— reitingavimas atsižvelgiant į lygybesSUM(),AVG(),COUNT()— agregatinės funkcijos lange
Pavyzdys: gauti darbuotojų sąrašą su jų atlyginimais ir eilės numeriu pagal skyrių mažėjimo tvarka:
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
Čia PARTITION BY skirsto duomenis pagal skyrius, o ORDER BY nustato tvarką kiekviename skyriuje. Langų funkcijos leidžia atlikti sudėtingas analitines užklausas be detalių praradimo.