又见分数算排名问题
大家应该都知道比较典型的一个SQL表C_CLASS C_NAME C_MARKS RANK
---------- ---------- ---------- ----------
语文 张三 100 1
语文 李四 90 2
语文 王五 80 3
数学 李四 80 3
数学 张三 70 5
数学 王五 60 6
现在的需求是: 有2个队 红队、蓝队 各自队员有积分 如何算整体排名?
比如表是这样:
C_Id C_NAME C_H C_L
---------- ---------- ---------- ----------
1 1号 100 100
2 2号 90 80
3 3号 80 85
4 1号 80 75
5 2号 70 65
6 3号 60 60
C_ID 是序号 C_NAME 是队员(每个队固定3个队员) C_H 红队每个队员分数 C_L 蓝队每个队员分数
现我已经用dense_rank() over 实现了单个队的队员分数排名 需要算2个队的整体排名 意思就是这6个人的排名
且排名是连续的。
--------------------编程问答-------------------- --------------------编程问答-------------------- 算出每个人的分数,再排名。 --------------------编程问答-------------------- 没看明白 --------------------编程问答-------------------- 分别求出C_H C_L两组的平均数 在对比? --------------------编程问答-------------------- 2个队每个队员的分数都已经有了,且分数也许会一样,这就存在同名次,现已算出每个队员在各自队里的排名,需要算出的是2个队6个人的整体排名,就是说需要将上表C_H(红队队员分数)、C_L(蓝队队员分数)做排名,dense_rank() over 这个函数统计单个列的数据可以,现在2个列棘手了.........
有哪位高手算法或SQL查询厉害的,试试。 --------------------编程问答-------------------- select * ,dense_rank() over( order by c_h+c_l desc) as rn from tb
补充:.NET技术 , ASP.NET