查询考试平均成绩高于全体学生的总平均成绩
① 编程C语言 输入n个学生成绩,计算他们的平均值并输出所有高于平均的学生成绩。 求解 !!
1 指针来
#include<stdio.h>
#define N 10
main()
{int i,num=0,max=0;float s=0,v,score[N],*p;
for(p=score,i=0;i<N;i++)
{scanf("%f",p+i);
if(*(p+i)>=score[max])
max=i;
s+=*(p+i);
}
v=s/N;
for(p=score,i=0;i<N;i++)
if(*(p+i)>v)
num++;
printf("average=%.1f,num=%d,%.1f\n",v,num,score[max]);
}
2.
#include<stdio.h>
#define N 10
main()
{int i,max=0,g=0,s=0,a[N];double v;
for(i=0;i<N;i++)
{scanf("%d",a+i);s=s+a[i];if(a[i]>=a[max])max=i;}
v=s/N;
for(i=1;i<=N;i++)
if(a[i]>v)
g++;
printf("大于自平均成绩%.2lf有%d人其中最高分%d",v,g,a[max]);
}
② SQL查询计算机系平均成绩大于85分的学生的学号和平均成绩.(用派生查询)
select student.sdept,avg(sc.grade) from student,sc where student.sdept=sc.sdept group by student.sdept having avg(sc.grade)>85
③ 查询平均成绩大于所有女同学平均成绩的男生的学号和平均成绩
select * from (
select a.sno,b.sname,b.sex,avg(a.score)over(partition by a.sno) avg_sno,avg(a.score)over(partition by b.sex) avg_sex from score a, student b
where a.sno = b.sno ) c
where c.avg_sno > (select distinct avg(a.score) from score a, student b where a.sno = b.sno and b.sex = '女')
and c.sex = '男'
④ 5.用SQL命令查询所有学生的学号、姓名、总成绩、平均成绩。
用SQL命令查询所有学生的学号、姓名、总成绩、平均成绩。
select 学号,姓名,总成绩,(总成绩/总科数) from 表
⑤ sql 嵌套查询选修"计算机文化学"且成绩高于此课程平均成绩的学生学号和成绩
由于不知道原题目,只能假设了,假设学号:No;成绩: score ;选修课程:kc; 从成绩表 sc中查询专
select No,score from sc where kc='计算机文化属学' and score >(
select avg(score) from sc where kc='计算机文化学')
将假设的字段和表名换成拟题目中的字段和表名
⑥ 求解: sql 数据库 检索各科成绩均大于等于该科平均成绩的学生的学号和姓名
CREATE TABLE #学生表(
学生号 INT,
姓名 VARCHAR(10),
性别 VARCHAR(2),
年龄 INT
);
CREATE TABLE #课程表 (
课程号 INT,
课程名 VARCHAR(10)
);
CREATE TABLE #成绩表(
学生号 INT,
课程号 INT,
成绩 INT
);
INSERT INTO #学生表
SELECT 1, '张三', '男', 16 UNION ALL
SELECT 2, '李四', '男', 17 UNION ALL
SELECT 3, '王五', '女', 16 UNION ALL
SELECT 4, '赵六', '女', 17 UNION ALL
SELECT 5, '田七', '女', 18
;
INSERT INTO #课程表
SELECT 1, '语文' UNION ALL
SELECT 2, '数学' UNION ALL
SELECT 3, '外语'
;
-- 张三全部 超过平均。
-- 李四全部 低于平均。
-- 王五 赵六 部分高于,部分低于
-- 田七 少考一门,其它超过平均
INSERT INTO #成绩表
SELECT 1, 1, 85 UNION ALL
SELECT 1, 2, 85 UNION ALL
SELECT 1, 3, 85 UNION ALL
SELECT 2, 1, 75 UNION ALL
SELECT 2, 2, 75 UNION ALL
SELECT 2, 3, 75 UNION ALL
SELECT 3, 1, 85 UNION ALL
SELECT 3, 2, 75 UNION ALL
SELECT 3, 3, 85 UNION ALL
SELECT 4, 1, 75 UNION ALL
SELECT 4, 2, 85 UNION ALL
SELECT 4, 3, 75 UNION ALL
SELECT 5, 1, 83 UNION ALL
SELECT 5, 2, 83
;
SELECT
#学生表.学生号,
#学生表.姓名
FROM
#学生表
WHERE
NOT EXISTS(
SELECT
1
FROM
(
SELECT
课程号,
AVG(成绩) AS 平均成绩
FROM
#成绩表 a
GROUP BY
课程号
) AS 平均成绩表
LEFT JOIN #成绩表
ON (平均成绩表.课程号 = #成绩表.课程号
AND 平均成绩表.平均成绩 < #成绩表.成绩
AND #成绩表.学生号 = #学生表.学生号)
WHERE
学生号 IS NULL
);
学生号 姓名
----------- ----------
1 张三
(1 行受影响)
⑦ 在数据库中如何使用sql语句查询:修了a12课程,且成绩高于此课程的平均成绩的学生的姓名和成绩急
select a.sname,b.cname from student a,course b, sc c
where a.sno=c.sno and b.cno=c.cno
and a.sno in (
select d.sno from sc d where d.cno='01' and d.grade>
(select avg(grade) from sc where cno='01' )
)
⑧ SQL 找出平均成绩大于80的学生总人数找出平均成绩最高的学生的所有信息
1.select count(*) from (select 学号,avg(成绩) score from grade group by 学号) a where a.score>80
2.select * from student where 学号 in(select top 1 学号 from (select 学号,avg(成绩) score from grade group by 学号)a order by score desc)
哦,第二个没注回意,已修改答
⑨ SQL语句查询平均成绩高于全班平均成绩的学生
查询出每抄个部门比平均工资高的职工人数。
SELECT DEPTNO,COUNT(SAL) FROM EMP WHERE SAL> (SELECT AVG (SAL) FROM EMP) GROUP BY DEPTNO; 其中DEPTNO是部门,SAL是工资,EMP是表名(记录员工部门、工资等信息)。