Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按嵌套的sql分组_Sql_Oracle10g - Fatal编程技术网

按嵌套的sql分组

按嵌套的sql分组,sql,oracle10g,Sql,Oracle10g,我们需要从每节课中找出得分最高为500分的前10名学生 例如: Section Name Total Score A Paul 499 A Gustuv 498 ...upto top 10 B Henrik 499 B John 498 ...upto 10 假设它有两张桌子,学生和班级 如何在oracle中使用sql以这种方式显示结果 根据前10个分析函数

我们需要从每节课中找出得分最高为500分的前10名学生

例如:

Section  Name   Total Score  

     A   Paul   499  
     A   Gustuv 498 
         ...upto top 10  

     B   Henrik  499  
     B   John   498   
         ...upto 10
假设它有两张桌子,学生和班级

如何在oracle中使用sql以这种方式显示结果

根据前10个分析函数的含义,使用秩或密集秩

试试看

我没有要测试的模式。。。。但是你应该能够得到大致的想法

with rank_query as (
SELECT section, name, score,
       RANK() OVER (PARTITION BY section ORDER BY score) score_rank
FROM   myTable
)

select * from rank_query where score_rank <= 10;
谢谢


Jeffrey Kevin Pry

发布表名和类的DDL。从类中选择节;从名称中选择名称、科目、分数;什么字段将名称和类表联系在一起?只有名称将它们联系在一起。我们可以说学生表而不是名称表。让我编辑我的帖子。查询将失败并出现错误,因为score_rank不是myTable的定义列,而是派生列。将不带where子句的查询作为内联查询/视图进行,并在使用RANK alreadyJeffrey时删除GROUP BY子句。Jeffrey:现在看起来很好+1.