【发布时间】:2011-11-11 20:46:03
【问题描述】:
Student Table
SID Name
1 A
2 B
3 C
Marks Table
id mark subject
1 50 physics
2 40 biology
1 50 chemistry
3 30 mathematics
SELECT distinct(std.id),std.name,m.mark, row_number() over() as rownum FROM
student std JOIN marks m ON std.id=m.id AND m.mark=50
即使在使用 disticnt 之后,这个结果也是 A 的 2 倍。我的预期结果将只有一个 A。如果我将 row_number() over() 删除为 rownum,它的工作正常。为什么会这样?如何解决。 AM 使用 DB2!!
【问题讨论】:
-
如果你不想在物理和化学方面都获得 A 的成绩,那么加入 Student and Marks 有什么意义?
-
我只想要至少一科50分的学生
标签: sql join db2 row-number