Мазмунга өтүү

Терезе функциялары: OVER, PARTITION BY жана рейтинг

Сабактын башталышы

Терезе функциялары: OVER, PARTITION BY жана рейтинг

Байланышкан саптардын үстүнөн ар бир сап боюнча аналитиканы эсептейбиз - аларды жыйнап салбай.

Негизги идея: Терезе функциясы эсептөөнү терезе - учурдагы сапка байланышкан саптардын жыйындысы - үстүнөн аткарат жана ар бир сапка бирден маани кайтарат, бардык баштапкы саптарды көрүнүктүү сактап. Бул GROUP BY дегенден негизги айырма, анткени GROUP BY көп сапты бирге жыйнайт. Терезе функциялары аналитикалык SQL негизи: рейтингдер, топ-N ар бир топто, өсүп бараткан жыйынтыктар жана жылма орточолор ушул жерден башталат.
Аягында сиз:
  • терезе моделин GROUP BY дегенден кантип айырмаланарын түшүндүрө аласыз;
  • OVER(...) конструкциясынын түзүлүшүн окуй аласыз;
  • PARTITION BY аркылуу дайындарды топторго бөлө аласыз;
  • ROW_NUMBER, RANK жана DENSE_RANK ортосунан туура тандай аласыз;
  • NTILE(n) аркылуу саптарды кутучаларга бөлө аласыз;
  • ар бир топто топ-N маселесин таза чече аласыз.

0. Мисал схема

Төмөнкү ар бир суроо-талап бир кичине сатуулар таблицасынын үстүнөн иштейт. Ар бир сап - региондо сатуучу жапкан бир бүтүм.

CREATE TABLE sales (
    id           INT PRIMARY KEY,
    region       VARCHAR(20),
    salesperson  VARCHAR(30),
    amount       DECIMAL(10,2)
);

INSERT INTO sales (id, region, salesperson, amount) VALUES
    (1, 'North', 'Alice', 5000),
    (2, 'North', 'Bob',   5000),
    (3, 'North', 'Carol', 3000),
    (4, 'South', 'Dan',   7000),
    (5, 'South', 'Eve',   4000),
    (6, 'South', 'Frank', 4000),
    (7, 'West',  'Grace', 6000),
    (8, 'West',  'Heidi', 2000);

Атайын дал келүүлөргө көңүл буруңуз: Alice менен Bob экөө тең 5000 жапты; Eve менен Frank экөө тең 4000 жапты. Так ушул дал келүүлөрдө үч рейтинг функциясы башкача иштейт.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө