我查看了与此相关的其他问题,但它没有用。我甚至玩过Dense_Rank
并且仍然无法得到正确答案。
使用Oracle学生计划数据。我试图根据两个表格找到每个部分的最高3个等级(不是每个部分的前3行)。
这基于Student
计划中的Grade
和Student
表格
我使用的是Oracle Developer 10,它看起来不像LIMIT
函数。因为它给了我错误
缺少右括号
select
g.SECTION_ID,g.NUMERIC_GRADE, s.First_Name,s.Last_Name
from GRADE g Join Student s
On g.student_ID = s.student_ID
and Grade_Type_Code='MT'
Where numeric_grade in(Select distinct numeric_grade
from grade
order by numeric_grade desc limit 3);
答案 0 :(得分:0)
您可以在Oracle中使用ROWNUM:
myApp.directive("myDirective", ["$compile",function($compile){
var template = '<my-directive ng-repeat="child in item.items" ng-model="child"></my-directive>';
return{
templateUrl: "myDirective.html",
replace: true,
transclude: true,
scope: {
item: "=ngModel"
},
link: function(scope, element){
var compiled = $compile(template)(scope);
element.append(compiled);
}
}
}]);
答案 1 :(得分:0)
使用dense_rank的解决方案:
select section_id, numeric_grade, first_name, last_name
from (
select g.section_id, g.numeric_grade, s.First_Name,s.Last_Name,
dense_rank() over (partition by g.section_id
order by g.numeric_grade desc) rnk
from GRADE g
join Student s on g.student_ID = s.student_ID
and Grade_Type_Code='MT' )
where rnk < 4
order by section_id, numeric_grade desc