直接上表如图

创建表的语句为:
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";
个人觉得可以优化,各路大神留下您的足迹
博客展示了创建表s_table的语句,表中包含学生相关信息。查询条件为找出成绩高于平均分的学生的科目及人员数目,给出了查询语句,但作者认为该方法较笨,希望各路大神提供优化建议。
578

被折叠的 条评论
为什么被折叠?



