1
私はこのテーブルを持っています。Sql Server:生徒別に数とグループをマークする
SELECT
*,
ROW_NUMBER() OVER (ORDER BY Marks DESC) AS Position,
COUNT(StudentID) OVER() AS 'Count'
FROM
Student
私が探している出力は、学生の位置や学生の総数を表示する必要があります:私は、このSQL文を実行することによって得
<table><tbody><tr><th>StudentID</th><th>AcademicYear</th><th>Term</th><th>StudentName</th><th>Class</th><th>Marks</th><th>Position</th><th>Count</th></tr><tr><td>12013</td><td>2015</td><td>One</td><td>Adamu A. Msangi</td><td>Form IV</td><td>80</td><td>1</td><td>5</td></tr><tr><td>52013</td><td>2015</td><td>One</td><td>Angela M. Lucas</td><td>Form IV</td><td>67</td><td>2</td><td>5</td></tr><tr><td>22014</td><td>2014</td><td>Two</td><td>Agness Daudi Martin</td><td>Form II</td><td>60</td><td>3</td><td>5</td></tr><tr><td>32014</td><td>2014</td><td>Two</td><td>Agness John Missana</td><td>Form II</td><td>51</td><td>4</td><td>5</td></tr><tr><td>42013</td><td>2015</td><td>One</td><td>Andrea F. Agustino</td><td>Form IV</td><td>50</td><td>5</td><td>5</td></tr></tbody></table>
。たとえば、ID Noの学生を照会すると、 42013および期間=「一つ」とAcademicYear = 2015とクラス=「フォームIV」、私は次の表と同様の結果を得る必要があります。
<table><tbody><tr><th>StudentID</th><th>AcademicYear</th><th>Term</th><th>StudentName</th><th>Class</th><th>Marks</th><th>Position</th><th>Count</th></tr><tr><td>42013</td><td>2015</td><td>One</td><td>Andrea F. Agustino</td><td>Form IV</td><td>50</td><td>5</td><td>3</td></tr></tbody></table>
をこれは私がいない成功を収めてみましたものです;
SELECT
*,
ROW_NUMBER() OVER (ORDER BY Marks DESC) AS Position,
COUNT(StudentID) OVER() AS 'Count'
FROM
Student
WHERE
StudentID = 42013
AND Term = 'One'
AND AcademicYear = 2015
AND Class = 'Form IV'
これはどのようにすることができますか?
おかげ
おかげ@GurV、用語あたりの生徒の正しい数を取得する方法はあり、クラス上記のクエリは、Student_count列に3人の学生を表示する必要があります。ありがとうございました – Sandet
@Sandet私はあなたが 'パーティションバイ 'をしたいと思います。私の答えを更新しました。助けてもらえたら教えてもらえますか? – GurV
ありがとう@GurVそれは今働いている... – Sandet