直接上表如图
创建表的语句为:
CREATE TABLE "s_table"
( "s_id" NUMBER(12,0),
"c_id" NUMBER(12,0),
"gender" NUMBER(12,0),
"s_name" VARCHAR2(255),
"c_name" VARCHAR2(255),
"score" NUMBER(12,0),
"class" NUMBER(12,0)
)
表说明:表明s_table, gender(0表示男生,1表示女生)
查询条件:查询出成绩高于平均分的学生的科目及人员数目
查询结果要求显示为:
c_name | 总数 |
软件工程 | 2 |
计算机 | 2 |
用了很笨的方法查询到了如图
查询语句:
SELECT "c_name","COUNT"(1) 总数 from
(SELECT S1."class",S1."s_name",S1."c_name",S1."score" from "s_table" s1,
(SELECT "c_name",("AVG"("score")) a from "s_table" GROUP BY "c_name") s2
WHERE S1."c_name"=S2."c_name"
ADN S1."score">=S2."A")
GROUP BY "c_name";
个人觉得可以优化,各路大神留下您的足迹