我已经从以前的帖子中看到了答案,它工作正常,但我有一个小困境。采取同样的场景:
列出每个班级学生成绩的表格。我想要一个看起来像这样的结果集:
BIO...B
CHEM...C
其中“B”和“C”是班级的模式,想要获得班级的模式。
应用以下查询后,我得到以下输出:
Class | Score | Freq | Ranking
2010 | B | 8 | 1
2010 | C | 8 | 1
2011 | A | 10 | 1
2012 | B | 11 | 1
2010年,我有两个频率相同的年级。如果..我只想显示最高分,在这种情况下将是“B”。我怎样才能做到这一点?我需要为字母等级分配排名,但我不确定如何。请指教。谢谢。
上一篇: SQL Server 模式 SQL
我用来检索数据的查询是彼得的答案:
;WITH Ranked AS (
SELECT
ClassName, Grade
, GradeFreq = COUNT(*)
, Ranking = DENSE_RANK() OVER (PARTITION BY ClassName ORDER BY COUNT(*) DESC)
FROM Scores
GROUP BY ClassName, Grade
)
SELECT * FROM Ranked WHERE Ranking = 1