ORDER BY子句中的嵌套SQL

时间:2016-12-02 15:17:25

标签: sql oracle

我在使用SQL解决特定案例时遇到了问题。

我有两个表 - 模块考试 - 具有以下内容 结构。

模块

  • 模块代码
  • 模块名称

考试

  • 学生证
  • 模块代码

我想获取模块的降级顺序。 受欢迎程度取决于给定模块的考试的出现。

我想在ORDER BY子句中使用嵌套查询,但我不确定。

编辑:

数据样本

Module Name | Module Code
---------------------------------
Programming | CS118
Database    | CS230
Finance     | IB143
Geometry    | MA109



Student Id | Module Code
----------------------------------
1323       | CS118
1432       | CS118
1956       | CS118
1323       | CS230
1956       | CS230
1432       | MA109
1751       | IB143

鉴于这个样本,我期望得到的是

Programming
Database
Finance
Geometry 

我的RDBMS是Oracle。

1 个答案:

答案 0 :(得分:2)

您可以使用内联视图来获取计数,然后按顺序排序。

这应该与数据库无关。

SELECT M.moduleCode, M.Modulename, B.cnt
FROM Module M
INNER JOIN (Select count(1) cnt, ModuleCode from exam group by ModuleCode) B
  on M.ModuleCode= B.ModuleCode
ORDER BY B.Cnt Desc