1
我有一个这个表; Sql Server:学生计数和组标记
<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>
这我通过运行该SQL语句:
SELECT
*,
ROW_NUMBER() OVER (ORDER BY Marks DESC) AS Position,
COUNT(StudentID) OVER() AS 'Count'
FROM
Student
我要找应显示学生的位置和学生总数的输出。例如,如果我查询ID号的学生; 42013和期限=“一”和AcademicYear = 2015和class =“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的快速回复,有没有办法让每学期,班级的学生正确的号码,AcademicYear的目标/相应的Student.For例如上面的查询应显示Student_count列中的3名学生。再次感谢 – Sandet
@Sandet我想你想分区。更新了我的答案。你能尝试让我知道它是否有帮助吗? – GurV
感谢@GurV它正在工作... – Sandet