postgresql序列号取决于行?

时间:2016-02-24 16:56:31

标签: sql database postgresql rows

参加数据库课程,我不确定如何创建此视图。 我有这个表(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,数字的视图,其中数字是用自己计算的。基本上最低的是给出了队列1,第二低的给出了2等等。 (当然,数字)是独一无二的,但不是数字,因为有很多不同的课程。

我认为需要做的是首先按顺序排序表(当然,然后),然后只添加序列号,但最终课程将改变,然后序列号需要重新开始,再次从1开始。

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

1 个答案:

答案 0 :(得分: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