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 განსაზღვრავს წესრიგს თითოეულ სექციაში. ფანჯრის ფუნქციები საშუალებას აძლევს რთული ანალიტიკური კითხვების შესრულებას დეტალების დაკარგვის გარეშე.