access的SQL语句,写一个能筛选出最受欢迎的人的语句

表的内容里有
科目名,教师ID, 教师姓名,是否得到好评(这一栏就是-1和0区别的)
要选出最受欢迎的老师,
需要数出这个表里各个教师得到的好评非好评的总数a(也就是其教师ID出现的次数)
还有各个教师得到的好评数b(即每个教师得到值为-1的次数)
然后将b/a,得出的数字就是好评率了
最后要按好评率高到低排序就行
请问这要怎么用SQL写
急需

可以把同一个教师,不同科目的好评分开。如果不分开,把中间的科目名全部去掉就行了。
select N.科目名,N.教师ID, N.教师姓名,M.HPL from
(select max(e.b/f.a) AS HPL
from ((select 科目名,教师ID, 教师姓名, count(*) as b from table where hp=-1 group by 科目名,教师ID, 教师姓名)e
left join
(select 科目名,教师ID, 教师姓名, count(*) as a from table group by 科目名,教师ID, 教师姓名)f
on f.科目名=e.科目名 and f.教师ID=e.教师ID and e.教师姓名=f.教师姓名 )
) M
left join
(select e.科目名,e.教师ID, e.教师姓名,e.b/f.a AS HPL
from ((select 科目名,教师ID, 教师姓名, count(*) as b from table where hp=-1 group by 科目名,教师ID, 教师姓名)e
left join
(select 科目名,教师ID, 教师姓名, count(*) as a from table group by 科目名,教师ID, 教师姓名)f
on f.科目名=e.科目名 and f.教师ID=e.教师ID and e.教师姓名=f.教师姓名 )
) N
ON N.HPL=M.HPL
如果需要第个科目最受欢迎的教师,
select N.科目名,N.教师ID, N.教师姓名,M.HPL from
(select e.科目名,max(e.b/f.a) AS HPL
from ((select 科目名,教师ID, 教师姓名, count(*) as b from table where hp=-1 group by 科目名,教师ID, 教师姓名)e
left join
(select 科目名,教师ID, 教师姓名, count(*) as a from table group by 科目名,教师ID, 教师姓名)f
on f.科目名=e.科目名 and f.教师ID=e.教师ID and e.教师姓名=f.教师姓名 )
gropy by e.科目名
) M
left join
(select e.科目名,e.教师ID, e.教师姓名,e.b/f.a AS HPL
from ((select 科目名,教师ID, 教师姓名, count(*) as b from table where hp=-1 group by 科目名,教师ID, 教师姓名)e
left join
(select 科目名,教师ID, 教师姓名, count(*) as a from table group by 科目名,教师ID, 教师姓名)f
on f.科目名=e.科目名 and f.教师ID=e.教师ID and e.教师姓名=f.教师姓名 )
) N
ON N.HPL=M.HPL
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-18
select id,a,b,a/b hpl from ( select id,(select count(*) from table a where hp=-1 and a.id=table.id) a,select count(*) from table a where a.id=table.id) b from table ) ta

数据库软件access与oracle区别
4)Oracle中,如果TblA Left Join TblB,那么结果集是TblA中数据的数量。但是在Access中,TblA Left Join TblB,结果集的数量是TblA* TblB的数量。在Oracle中,用一条SQL向一个递增的字段插入数据可以使用如下SQL:Insert Into TblA ( N_ID ) Values ( ( Select ( Nvl( Max(N_ID), 0 )+1...

怎样能招聘到最满意的员工?
"我来应聘是因为我相信自己能为公司做出贡献,我在这个领域的经验很少人比得上,而且我的适应能力使我确信我能把职责带上一个新的台阶"应证者为了表明应征原因及工作意愿,回答时答案最好是能与应征公司的产品及企业相关的,最好不要回答:因为将来有发展性、因为安定等答案,要表现出有充分研究过企业的样子。 9、...

VB删除ACCESS数据库前N行数据
cn.Excute "Delete * From (Select Top " + CStr(a) + " from hhdata)"一步操作微 不会占用多少内存了。

access2003表格中不允许出现的字,比如说工作,应该怎么样设置。_百度...
一好处进入从程序员视角在它的有关兼容性有SQL-质问可能被观看并且作为SQL语句编辑,并且SQL语句直接在巨视和VBA模里可以被使用操作进入桌子。用户可能混合并且使用两个VBA并且"宏"编程形式和逻辑既没提供面向对象的可能性。 导入导出报表的生成程序,当时有能力和到这项任务的复杂报告创造,没有另一受欢迎数据库报表程...

acess中什么一经运行就不能撤销因此在执行前一定要做好备份?
启动:开始-->所有程序-->Microsoft Office程序组-->MicrosoftAccess关闭数据库有以下几种方法:1)选择“文件”选项卡,单击“关闭数据库”命令。2)选择“文件”选项卡,单击“退出”命令。3)单击数据库窗口标题栏的“关闭”按钮。4)双击“控制”按钮5)按Alt+F4组合键 ...

access是做什么的?
一好处进入从程序员视角在它的有关兼容性有SQL-质问可能被观看并且作为SQL语句编辑,并且SQL语句直接在巨视和VBA模里可以被使用操作进入桌子。用户可能混合并且使用两个VBA并且"宏"编程形式和逻辑既没提供面向对象的可能性。 导入导出报表的生成程序,当时有能力和到这项任务的复杂报告创造,没有另一受欢迎数据库报表程...

数据库有哪几种?
1、关系数据库 包括:MySQL、MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)、Percona Server(MySQL的代替品)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables。FileMaker、Oracle数据库、Sybase、dBASE、Clipper、FoxPro、foshub。几乎所有的数据库管理系统都配备了一个...

请问作为一个java的程序员要具备哪些技术?
最后,想说的是:企业其实需要的是学习能力强的人,踏实肯干就会得到认可。至于技术都是进入公司以后的事情,只要上面说的几样搞清楚了,面试谈的不错,加点技巧就可以了!java 学习资料要视频干什么呢? 用Eclipse工具自己买本书或者到网上下几个程序源代码研究一下,再写几个小例子就差不多了!这些...

网站链接优化的方法有哪些呢?
13.很多时候用exists代替in是一个好的选择: selectnumfromawherenumin(selectnumfromb) 用下面的语句替换: selectnumfromawhereexists(select1frombwherenum=a.num) 14.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,mal...

MSSQL, MYSQL和ACCESS这三个都是数据库吗?有什么区别啊?高手指教...
ACCESS是微软Office办公套件中的一员。 是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,Access在2000年的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且因为它的易学易用的特点正逐步取代传统的VFP成为二级中最受欢迎的数据库语言。MySQL是一个...

相似回答