I have been struggling to understand the window functions. I understand its use case like when you want to rank countries population per continent however the syntax is so weird it doesn’t make any sense what actually happening

How does the sql server process this? does it run on every row? is there any benefit of using it over subquery?

sorry if this question is too dumb :(

  • HelloRoot@lemy.lol
    link
    fedilink
    English
    arrow-up
    13
    ·
    4 days ago

    Think of window functions as a two-layer operation:

    Layer 1: Produce all the rows (FROM, WHERE, GROUP BY, HAVING)

    Layer 2: For each row, peek at its “neighborhood” (partition) and compute something

    The result of Layer 2 is just another column added to each row. Nothing collapses, nothing gets removed. You just get extra computed values based on context and that context is what PARTITION BY, ORDER BY, and the frame clause define.