更新:感谢大家,话题已关闭,睡醒后我已经理解了一切=)
我在理解OVER子句和ROW_NUMBER函数方面遇到了问题。有一个简单的表格,包含姓名和成绩。我想为每个姓名计算平均分。
SELECT top 1 with ties name, ROW_NUMBER() over (PARTITION BY name ORDER BY name) as number
FROM table
ORDER BY AVG(mark) OVER(PARTITION BY name)
它将显示类似于这样的内容,我明白其中的原因——这就是ROW_NUMBER()的作用。
name|number
Pete 1
Pete 2
但是如果我写
SELECT top 1 with ties name, ROW_NUMBER() over (PARTITION BY name ORDER BY name) as number
FROM table
ORDER BY AVG(mark) OVER(PARTITION BY name), number
它将显示
name|number
Pete 1
这次我不明白如何在ROW_NUMBER()函数中使用ORDER BY。有人能给我解释一下吗?