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を使用しようとしていると私はSINGLEホームグループ(= 1例。ホームグループ)に対してこれを実行する場合には、正常に動作します...しかし、私はすべてのhomegroups上でこれを実行するかどうかはわかりません。
私はサブクエリを持って更新クエリを、必要と推測している...と、このサブクエリが、それは自分のサブクエリのですが... ??
私はかなり混乱している:(そして私は私が(私はそれが「SET」の表記を正しく処理することができると信じて原因)私の頭に銃を持っていない限り使用することを拒否悪カーソルを考えておきます。
解決
チーム内の各学生のDENSE_RANKを取得するには:
SELECT *, DENSE_RANK() OVER (PARTITION BY Team ORDER BY Score DESC)
FROM Students;
あなたががUPDATEをしたいですか何私には明確ではありません。
所属していません StackOverflow