sql總成績排名
① 按照人名查出學生的各科成績以及總成績並按總成績排名的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實現按總成績倒敘排列。
(1)sql總成績排名擴展閱讀
上述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'
② 總成績排名sql文
建表來
createtablea(idint,namevarchar2(10),subjectvarchar2(10),scoreint);
插入數據
insertintoavalues(1,'張三','語自文',100);
insertintoavalues(2,'張三','數學',100);
insertintoavalues(3,'張三','外語',100);
insertintoavalues(4,'李四','語文',95);
insertintoavalues(5,'李四','數學',95);
insertintoavalues(6,'李四','外語',95);
運行代碼
selectrow_number()over(orderbyscoredesc)id,t.name,t.score
from
(selectname,sum(score)scorefromagroupbyname)t
結果截圖
③ 求總成績和排名的SQL語句
select 姓名,數學+語文+英語 from 表 order by 數學+語文+英語
④ sql查詢排名總分前十的學生姓名!
SELECT * FROM (SELECT 班級自,姓名,SUM(分數) 總分數,ROW_NUMBER() OVER(PARTITION BY 班級 ORDER BY SUM(分數) DESC) 班級名次 FROM 表名 GROUP BY 班級,姓名) T WHERE 班級名次<=10 ORDER BY 班級,班級名次
⑤ 求一條sql語句,按照成績降序排序,並顯示名次,如123
SELECT
id,
read_total,
(
SELECT
COUNT(read_total)
FROM
t_circle_topic
WHERE
ct.read_total <= read_total
) AS rank
FROM
t_circle_topic AS ct
ORDER BY
read_total DESC
(5)sql總成績排名擴展閱讀抄
ORDER BY 語句用於襲對結果集進行排序。
ORDER BY 語句用於根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。
在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為 nulls 時,情況也是這樣的。
⑥ 求一條SQL語句查出三年級學生的總成績排名:學生姓名,老師姓名,所屬班級,總分,排名
求一條SQL語句查出三年級學生的總成績排名:學生姓名,老師姓名,所屬班級,總分,排名
select
學生表a.名稱 as 學生姓名,
老師表b.名稱 as 老師姓名,
班級表c.名稱 as 所屬班級,
總分表g.總分 as 總分,
rownum as 排名
from
(select
學生編號 as 學生編號,
sum(考試成績) as 總分
from
成績表f
group by 學生編號)總分表g
inner join
學生班級表d
on
學生班級表d.學生編號 = 總分表g.學生編號
inner join
老師班級表e
on
老師班級表e.班級編號 = 學生班級表d.班級編號
inner join
班級表c
on
班級表c.編號 = 老師班級表e.班級編號
inner join
學生表a
on
學生表a.編號 = 學生班級表d.學生編號
inner join
老師表b
on
老師表b.編號 = 老師班級表e.老師編號
where
班級表c.年級 = '三年級'
order by 總分表g.總分 desc
不同資料庫取得rownum的方法不一樣注意變下
⑦ 求sql文,按班級分組計算總分並排名
select 班級,姓名,sum(分數) from 表 group by 班級,姓名
望採納!!
⑧ 1查詢成績表的總分數,平均分,最低分和最高分。用sql語句怎麼寫
1. 計算每個人的總成績並排名(要求顯示欄位:姓名,總成績)
select name,sum(cast(score as bigint)) as allscore from stuscore group by name order by allscore desc
2. 計算每個人的總成績並排名(要求顯示欄位: 學號,姓名,總成績)
select stuid,name,sum(cast(score as bigint)) as allscore from stuscore group by stuid,name order by allscore desc
3. 計算每個人單科的最高成績(要求顯示欄位: 學號,姓名,課程,最高成績)
SELECT t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(SELECT stuid,max(score) as maxscore from stuscore group by stuid) t2 where t1.stuid=t2.stuid and t1.score=t2.maxscore
4. 計算每個人的平均成績(要求顯示欄位: 學號,姓名,平均成績)
select distinct t1.stuid,t1.name,t2.avgscore from stuscore t1,(select stuid,avg(cast(score as bigint)) as avgscore from stuscore group by stuid) t2 where t1.stuid=t2.stuid
⑨ 用sql server 對學生總成績進行排名
分別倒序順序排序取出5個
select top 5 * from 成績表 order by 成績 desc
select top 5 * from 成績表 order by 成績 asc
一條語句就把他版們連起來就權好了
select * from (select top 5 * from 成績表order by 成績 desc) as a
union all
select * from (select top 5 * from 成績表order by 成績 asc) as b
⑩ SQL server計算總分和平均分,排名問題
用以下語句
select
id,姓名,語文,數學,英語,物理回,化學,
(語文+數學+英語+物理+化學)As總分答,
((語文+數學+英語+物理+化學)/5)As平均分
from
成績表
orderby總分desc
注意,不能用sum和avg。因為這些函數是針對不同行(記錄)進行計算;而現在是對同一行的不同欄位進行計算。