需要帮助试图用GROUP BY排名
-
19-09-2019 - |
题
我有麻烦试图排名我们每一个学生,通过他们在家庭组。
实施例的假数据。
HomeGroup
1. Team RED
2. Team BLUE
3. Team Skeet
4. Team GREEN
Students
1. John, Score - 34, Team RED
2. Jill, Score - 87.3, Team RED
3. Fred, Score - 41, Team GREEN
4. Jane, Score 93, Team BLUE
...
等
我的输出是在下面的
Scores
StudentId 1, Score 34, Rank - 5th
StudentId 2, Score 87.3, Rank - 1st
StudentId 3, Score 41, Rank - 9th
StudentId 4, Score 94, Rank - 1st.
我想用DENSE_RANK ..如果我运行此针对单个家庭组工作正常(如:家庭组= 1)...但我不知道如何在所有家庭组做到这一点。
我猜我需要一个更新查询,其中有一个子查询......这子查询都有它自己的子查询... ??
我很困惑:(我不断思考我拒绝使用,除非我有一个用枪指着我的头(因为我相信它可以正确地“设置”符号来处理)邪恶的光标。
解决方案
要获得在球队每个学生的DENSE_RANK:
SELECT *, DENSE_RANK() OVER (PARTITION BY Team ORDER BY Score DESC)
FROM Students;
你想要的UPDATE虽然什么我也不清楚。
不隶属于 StackOverflow