• Excellent question. I learned something useful.

    One application of OVER that seems to have potential (note hedging 😉 ) is that it allows applying aggregate function to more than one different grouping in the same query. For instance,

    select customerID, productID, orderDate, orderAmount,

    CustomerTotal = sum(orderAmount) over (partition by customerID),

    ProductTotal = sum(orderAmount) over (partition by productID)

    from Orders

    Any thoughts on performance?

    Edited for clarity.