查詢某學生的各科成績
1. sql查詢某個學生的平均成績的排名
1
2
3
4
5
6
7
8
9
10
11
select s.dname,s.sname,s.avggrade
from
(select t.dname,t.sname,t.avggrade,row_number() over (partition by t.dname order by t.avggrade desc) rn
from
(select a.name dname,b.name sname,avg(c.grade) avggrade
from
department a,student b,takes c
where a.department_id=b.department_id
and b.student_id=c.student_id
group by a.name,b.name) t) s
where s.rn=1
包含並列的情況,如果一個學院有兩個第一,兩個人都顯示,以上為 sqlserver或oracle寫法,其他資料庫執行不了
-------------補充-----------
給你個通用的
select s2.*
from
(select t.dname,max(t.avggrade) avggrade
from
(select a.name dname,b.name sname,avg(c.grade) avggrade
from
department a,student b,takes c
where a.department_id=b.department_id
and b.student_id=c.student_id
group by a.name,b.name) t
group by t.dname) s1,
(select a.name dname,b.name sname,avg(c.grade) avggrade
from
department a,student b,takes c
where a.department_id=b.department_id
and b.student_id=c.student_id
group by a.name,b.name) s2
where s1.dname=s2.dname
and s1.avggrade=s2.avggrade
2. access查詢中由學生單科成績求總成績
在access中建立新查詢,選擇「在設計視圖中創建查詢」,選擇已建立好的學生單科成內績查詢,彈出的查詢頁容面中的空白地方單擊滑鼠右鍵選擇「SQL 視圖」,將select後面填寫「 學生姓名,sum(學生成績)」(雙引號里的內容)。在最後分號前填寫「 group by 學生姓名」(雙引號里的內容)。點擊關閉,點擊保存。雙擊查詢即可。
3. sql查詢各科成績在80~90分的學生
select * from s_c where 成績>80 and 成績<90 order by id desc
4. 按照人名查出學生的各科成績以及總成績並按總成績排名的sql語句
按照人名查出學生的各科成績以及總成績並按總成績排名的sql語句示例如下:
selectA.name ,
(selectB.scorefromtable_scoreBwhereB.type='數學'andA.id=B.id) as數學 ,
(selectB.scorefromtable_scoreBwhereB.type='語文'andA.id=B.id) as語文,
(selectB.scorefromtable_scoreBwhereB.type='英語'andA.id=B.id)as英語,
(selectSUM(B.score)fromtable_scoreBwhereA.id=B.id)assum_score
fromtable_studentAorderbysum_scoreDESC
以上sql語句首先把學生表和成績表聯合查出每個學生的數學、語文、英語成績,然後通過selectSUM(B.score)fromtable_scoreBwhereA.id=B.id查出每個學生的總成績。
最後orderbysum_scoreDESC實現按總成績倒敘排列。
(4)查詢某學生的各科成績擴展閱讀
上述sql語句重點是對as關鍵字的使用- Alias(別名),通過使用 SQL,可以為列名稱和表名稱指定別名(Alias)。
表的 SQL Alias 語法
SELECT column_name(s) FROM table_name AS alias_name;
列的 SQL Alias 語法
SELECT column_name AS alias_name FROM table_name;
Alias 實例: 使用表名稱別名
假設我們有兩個表分別是:"Persons" 和 "Proct_Orders"。我們分別為它們指定別名 "p" 和 "po"。
現在,我們希望列出 "John Adams" 的所有定單。
我們可以使用下面的 SELECT 語句:
SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Proct_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
5. SQL資料庫,三個表,查詢學生某一門課程的成績
SELECTa.S#AS學號,a.SnameAS姓名,c.scoreAS物理版成績權
FROMStudenta,Courseb,SCc
WHEREa.S#=c.S#ANDb.C#=c.C#ANDb.Cname='物理'
6. access,如何查詢每個學生的各科成績之和
select sum(成績表.成績) from 成績表 inner join 學生表
on 學生表.學生號 = 成績表.學生號
where 成績表.subjectid in (1001,2001)
7. 怎樣統計SQL資料庫裡面每一個學生的各科成績的總分
。。有哪些表,哪些欄位啊
select 學號,課1+課2+課3+課4+課5 as 總成績 from 成績表
這種一張表的?
8. oracle查詢每個學生每個科目的成績
select
t.姓名,
sum(decode(科目,'語文內',成績,0))AS"語文",
sum(decode(科目,'數學',成績,0))AS"數學",
sum(decode(科目,'英語容',成績,0))AS"英語"
from表t
groupby姓名;
9. sql動態鏈接查詢列出某個同學某學期的所有成績
@con nvarchar(50) 你這個長度設置的太短了吧,你看你單引號里那一堆,何止50個字版符,把長度加到2000吧
declare
@權con nvarchar(2000),
@personname nvarchar(50),
@personterm int
select @con='select sc.courseid,ce.name,sc.grade from course ce,score sc,student st
where st.no=sc.no and ce.id=sc.courseid and ce.term=sc.term and st.name =@personname and sc.term =@personterm'
set @personname='張雲飛'
set @personterm=1
exec sp_executesql @con,N'@personname nvarchar(50),@personterm int',@personname,@personterm
10. 用sql 查詢出各個科目中成績最好的學生的名字
select
姓名
from
(select
*
from
(
select
a.學生編號,a.姓名
b.
學生編號,b.科目,b.分數
from
table1
a
right
join
table2
b
on
b.學生編號=a.學生編號
)c
group
by
c.科目
having
max(c.分數)
)