我想根据特定的列值在表位中给出行。
例如:将具有学生姓名和标记的表格中的数据插入到另一个表格中,该表格将根据标记自动在另一列中插入学生位置。应该注意的是,两个或更多具有相同标记的学生将共享一个职位。即如果有3名学生获得60,那么他们将拥有相同的职位。 我有一个包含学生姓名和标记的表格,我必须插入一个新表格,该表格也会有职位列。
请帮助我在SQL中实现这一目标。
好的,我说我的表中有以下数据:
StudentNo StudentMark
6548 | 79个
8762 | 60个
6874 | 58个
3876 | 70个
3676 | 60
我想插入另一个表格,看起来像这样:
StudentNo | StudentMark |位置
6548 | 79 | 1
3876 | 70 | 2
3676 | 60 | 3
8762 | 60 | 3
6874 | 58 | 4
答案 0 :(得分:1)
我们现在需要一个表格布局或SQL语句来帮助您,但this文档可能就是您需要的。如果您需要更多帮助,请更新您的问题。
示例:
select name
, dense_rank() over (order by mark) position
from table
order
by position
答案 1 :(得分:0)
我认为你的陈述应该是这样的:
insert into Rank_Students(
UserName,
Mark,
Rank
)
select
s.UserName,
s.Mark,
rank() over (order by s.Mark asc) as Position
from Student
;
如果你不想要排名,我应该使用Dense_Rank。