postgresql 序列号取决于行?

postgresql sequence number depending on rows?

正在学习数据库课程,但我不确定如何创建此视图。 我有这个 table(postgresql):

CREATE TABLE InQueue (
  id INT REFERENCES Student(id),
  course VARCHAR(10) REFERENCES RestrictedCourse(course_code),
  since TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id,course),
  UNIQUE (course,since)
  );

我应该创建一个视图,列出课程、ID、编号,其中编号是用 since 计算的。基本上最低的队列编号为 1,第二低的队列编号为 2,依此类推。 (course,number) 是唯一的,但不是数字本身,因为有很多不同的课程。

我认为需要做的是首先按 (course,since) 对 table 进行排序,然后只添加序号,但最终课程会改变,然后序号需要重新开始, 又从 1 开始。

有人能给我指出正确的方向吗? :)

使用:

Select row_number() over (partition by course order by since asc) as yournumber, id,
course, since from InQueue 

您可以在此处阅读有关解析函数的信息:http://www.postgresql.org/docs/9.4/static/tutorial-window.html