我在使用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。
答案 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