㈠ 怎样编写sql语句求平均成绩
1、打开数据库软件,附加数据库,右键选择新建查询。
㈡ sql题 查询每位同学的课程门数、总成绩、平均成绩”的SQL语句是什么
不知道你的表结构是什么啊?
例如表的字段有姓名、课程、成绩的话
每人的总成绩:SELECT 姓名,SUM(成绩) FROM 表名 GROUP BY 姓名
每人的平均成绩:SELECT 姓名,SUM(成绩)/COUNT(*) FROM 表名 GROUP BY 姓名
每人的课程门数:SELECT 姓名,COUNT(*) FROM 表名 GROUP BY 姓名
㈢ SQL语句求一个学生表的学生成绩的平均成绩
问题:假设有张学生成绩表(tb)如下:
姓名
课程
分数
张三
语文
74
张三
数学
83
张三
物理
93
李四
语文
74
李四
数学
84
李四
物理
94
想变成(得到如下结果):
姓名
语文
数学
物理
----
----
----
----
李四
74
84
94
张三
74
83
93
-------------------
*/
create
table
tb(姓名
varchar(10)
,
课程
varchar(10)
,
分数
int)
insert
into
tb
values('张三'
,
'语文'
,
74)
insert
into
tb
values('张三'
,
'数学'
,
83)
insert
into
tb
values('张三'
,
'物理'
,
93)
insert
into
tb
values('李四'
,
'语文'
,
74)
insert
into
tb
values('李四'
,
'数学'
,
84)
insert
into
tb
values('李四'
,
'物理'
,
94)
go
--sql
server
2000
静态sql,指课程只有语文、数学、物理这三门课程。(以下同)
select
姓名
as
姓名
,
max(case
课程
when
'语文'
then
分数
else
0
end)
语文,
max(case
课程
when
'数学'
then
分数
else
0
end)
数学,
max(case
课程
when
'物理'
then
分数
else
0
end)
物理
from
tb
group
by
姓名
--sql
server
2000
动态sql,指课程不止语文、数学、物理这三门课程。(以下同)
declare
@sql
varchar(8000)
set
@sql
=
'select
姓名
'
select
@sql
=
@sql
+
'
,
max(case
课程
when
'''
+
课程
+
'''
then
分数
else
0
end)
['
+
课程
+
']'
from
(select
distinct
课程
from
tb)
as
a
set
@sql
=
@sql
+
'
from
tb
group
by
姓名'
exec(@sql)
--sql
server
2005
静态sql。
select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
(语文,数学,物理))
b
--sql
server
2005
动态sql。
declare
@sql
varchar(8000)
select
@sql
=
isnull(@sql
+
'],['
,
'')
+
课程
from
tb
group
by
课程
set
@sql
=
'['
+
@sql
+
']'
exec
('select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
('
+
@sql
+
'))
b')
---------------------------------
/*
问题:在上述结果的基础上加平均分,总分,得到如下结果:
姓名
语文
数学
物理
平均分
总分
----
----
----
----
------
----
李四
74
84
94
84.00
252
张三
74
83
93
83.33
250
*/
--sql
server
2000
静态sql。
select
姓名
姓名,
max(case
课程
when
'语文'
then
分数
else
0
end)
语文,
max(case
课程
when
'数学'
then
分数
else
0
end)
数学,
max(case
课程
when
'物理'
then
分数
else
0
end)
物理,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分,
sum(分数)
总分
from
tb
group
by
姓名
--sql
server
2000
动态sql。
declare
@sql
varchar(8000)
set
@sql
=
'select
姓名
'
select
@sql
=
@sql
+
'
,
max(case
课程
when
'''
+
课程
+
'''
then
分数
else
0
end)
['
+
课程
+
']'
from
(select
distinct
课程
from
tb)
as
a
set
@sql
=
@sql
+
'
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名'
exec(@sql)
--sql
server
2005
静态sql。
select
m.*
,
n.平均分
,
n.总分
from
(select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
(语文,数学,物理))
b)
m,
(select
姓名
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名)
n
where
m.姓名
=
n.姓名
--sql
server
2005
动态sql。
declare
@sql
varchar(8000)
select
@sql
=
isnull(@sql
+
','
,
'')
+
课程
from
tb
group
by
课程
exec
('select
m.*
,
n.平均分
,
n.总分
from
(select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
('
+
@sql
+
'))
b)
m
,
(select
姓名
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名)
n
where
m.姓名
=
n.姓名')
drop
table
tb
㈣ SQL语句 计算每个班的高考总分平均分,显示班级号和高考平均分
SQL语句如下:
select班级号, avg(总成绩)
from (
elect班级号,学生号,sum(成绩) 总成绩
from表
)
语言特色:
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。
可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
㈤ SQL语句 查询各学院平均成绩最高的学生姓名及平均成绩
select
学生表.学号,学生表.姓名,
average(成绩表.成绩)
as
平均成绩,
max(成绩表.成绩)
as
最高成绩,
min(成绩表.成绩)
as
最低成绩
from
学生表
left
join
成绩表
on
学生表.学号=成绩表.学号
order
by
学生表.学号
成绩表可换成语文、数学、英语等,查询结果就是各个学生相应课程的平均成绩、历史最高成绩、历史最低成绩。
㈥ sql同时查询学生平均分和课程平均分
话不多说,直接上代码,后面是代码解析
SELECTstu.snameAS姓名,cou.cnameAS课程名,sco.degreeAS成绩,t3.AvgdegreeAS每人平均分,t4.AvgdegreeAS每门课程平均分
FROMStudentstu
INNERJOINScorescoONstu.sno=sco.sno
INNERJOINCoursecouONcou.cno=sco.cno
INNERJOIN
(
SELECTt1.sno,t1.sname,AVG(t2.degree)ASAvgdegree
FROMStudentt1
INNERJOINScoret2ONt1.sno=t2.sno
GROUPBYt1.sno,t1.sname
)t3ONstu.sno=t3.sno
INNERJOIN
(
SELECTcno,AVG(degree)asAvgdegree
FROMscore
GROUPBYcno
)t4ONsco.cno=t4.cno
代码解析:
该问题的关键点在于,怎么用一行代码计算出每人的平均分,以及每门课程的平均分
这时需要用到临时表T3、T4
临时表T3,用于计算每人平均分
临时表T4,用于计算每门课程平均分
㈦ 使用SQL SELECT语句查询每个学生的平均成绩,在线等。
insert into pinjun(学生姓名, 平均成绩) select s.学生姓名,avg(c.成绩) from 学生表 s,成绩表 c where s.学生id=c学生id group by 学生id,学生姓名 order by avg(c.成绩) desc,c.学生姓名
㈧ 查询每位同学的课程门数、总成绩、平均成绩”的SQL语句是什么
SQL语句如下:
SELECT 学号, Count(课程编号) AS 课程总数, Sum(成绩) AS 总分数, Avg(成绩) AS 平均分
FROM 成绩表
GROUP BY 学号;
SQL常用操作语句如下:
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
㈨ sql问题,查找每门课程选课学生,平均分,最高分,最低分 。怎么解答啊
你好,很高兴回答你的问题。
解决这个问题需要用到分组查询和聚合函数。
sql大致如下:
select 课程,avg(分数),max(分数),min(分数) from 表 group by 课程。
其中avg是算平均分。
max是算最大分。
min是算最小分。
如果有帮助到你,请点击采纳。
我解答的大部分是软件开发新人遇到的问题,如果有兴趣可以关注我。
㈩ 怎么在MYSQL查询学生平均成绩及其名次
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。