㈠ 怎樣編寫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」圖標。