参加数据库课程,我不确定如何创建此视图。 我有这个表(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开始。
有人能指出我正确的方向吗? :)
答案 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