this post was submitted on 15 Jun 2026
24 points (100.0% liked)

Programming

27282 readers
222 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

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 :(

top 5 comments
sorted by: hot top controversial new old
[–] cephalopodfan@beehaw.org 2 points 8 hours ago

I've been working with SQL off an on for 20 years and never heard the term window functions before. TIL.

[–] verstra@programming.dev 2 points 18 hours ago

Think of them as operating on the whole column at once.

For example LAG would be like selecting a whole column in excel and copy pasting it one row down

[–] HelloRoot@lemy.lol 11 points 1 day ago (1 children)

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.

Thinking windows functions in two layer actually helped, Thank you kind stranger! :)

[–] Feyd@programming.dev 10 points 1 day ago

The main thing is that group by gives you a smaller number of rows than the input, collapsing the data from individual rows into the group rows in the output, while a window function does not change the number of rows - it just allows you to use data from other rows for calculations in each output row