查詢成績排名前十的學生
A. 查詢考試成績前十名的學生編號和學生成績用SQL Server怎麼查詢
應該首先排除掉掛科的學生,然後按成績倒序排列取前十位考生的成績和內編號。
select top 10 studentid,stcore from 成績表容
where studentid not in (select studentid from 補考表 )order by stcore desc,studentid
B. sql 查詢每個班前十名
舉例:
表[ClassInfo]:[ClassID],[StuID],[Score]
SQL如下:(每個班成績前十名學生)
select a.*
from [ClassInfo] a
where (select count(*) from [ClassInfo] b on b.[ClassID]=a.[ClassID] and b.[Score]>a.[Score])<10
order by a.[ClassID] desc,a.[Score] desc
如果是學生信息表和學回生成績表用得是2個實體表,那答就用連接查詢,這里就不舉例了。
明白?
C. SQL語言怎麼顯示成績表中成績最高的前十條學生的信息
先查詢表中的名次,desc 都排序 ,最高成績在上面,select top 10.........查詢出前10名最高成績的信息
D. SQL語句查詢排名第10的學生姓名
這樣:
select * from
(select top 10 id,score
from table
order by score) a
where a.id not in (select top 9 id from table order by score)
擴展資來料:源
注意事項
SELECT 語句用於從表中選取數據,結果被存儲在一個結果表中(稱為結果集)。
:語法
SELECT 列名稱 FROM 表名稱
以及:
SELECT * FROM 表名稱
注釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。
如需獲取名為 "LastName" 和 "FirstName" 的列的內容(從名為 "Persons" 的資料庫表),請使用類似這樣的 SELECT 語句:
SELECT LastName,FirstName FROM Persons
E. sql查詢排名總分前十的學生姓名!
SELECT * FROM (SELECT 班級自,姓名,SUM(分數) 總分數,ROW_NUMBER() OVER(PARTITION BY 班級 ORDER BY SUM(分數) DESC) 班級名次 FROM 表名 GROUP BY 班級,姓名) T WHERE 班級名次<=10 ORDER BY 班級,班級名次
F. SQL語句查詢成績排名前十名的學生
:以上兩條均對!,關於表名和排序欄位,讓提問題的【朋友】填寫,我們三人均祝你成功!!!
G. 怎麼用sql查詢班級前十名成績的同學的姓名和分數(成績相同的學生算同一個名次)
select name,score from (
select name,score,dense_rank() over(order by score) "row" from t )
where "row"=10
H. mysql中一張學生表,查詢出單科成績前十名學生的所有信息 和總分成績前十名學生的所有信息 在線等
學生表名為:student, 單科成績的欄位為:subject。學生名字為:name
查詢單科成績前十:mysql語句為:select * from student order by subject desc limit 10;
查詢總分成績前十:mysql語句為:select sum(subject) subject,name from student group by name order by subject desc limit 10;
註:
select sum(subject) subject,name
這句的意思是:sum(subject) subject 把單科成績加總用subject 來命名(就是總成績),name就是一個欄位,這里只有兩個欄位。
group by name order by subject : group by name 的意思按照名字這一欄來分組,當然,學生成績表名字有可能是一樣的,按照學號是最准確的,這里只是舉個例子。
order by subject 這句的意思是按照總分成績排序,這里的subject 是前面重命名總分的意思。
select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10;
(8)查詢成績排名前十的學生擴展閱讀:
學生成績表常用sql
1. 在表中插入符合主鍵
[sql]
/*成績表*/
CREATE TABLE SC
(
Sid INT REFERENCES Student(Sid), /*學生學號*/
Cid INT REFERENCES Course(Cid), /*課程編號*/
Score INT NOT NULL, /*課程分數*/
PRIMARY KEY(Sid,Cid) /*將學生學號和課程編號設為復合主鍵*/
)
2. 查詢各科成績最高分,最低分以及平均分
[sql]
SELECT c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average
FROM Course c JOIN SC s ON c.Cid = s.Cid
GROUP BY c.Cname
/*此處應注意,若不按照c.Cname進行分組,SQL語句會報錯,c.Cname在SELECT語句中不合法,因為它並未出現在聚合函數中也沒有出現在GROUP BY語句中*/
3. 查詢平均成績大於80分的學生姓名以及平均成績
[sql]
SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC
ON Student.Sid=SC.Sid
GROUP BY Sname
HAVING AVG(Score)>80
/*以聚合函數為條件進行刪選只能在HAVING語句中進行,WHERE語句不支持聚合函數*/
4.按總分為學生排名,總分相同名次相同
[sql]
SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,
ISNULL(SUM(ss.Score),0)
FROM Student s LEFT JOIN SC ss
ON s.Sid = ss.Sid
GROUP BY s.Sname
ORDER BY SUM(ss.Score) DESC
/*RANK()是SQL Server的一個built-in函數,語法為
RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/
5. 查詢總分在100至200之間的學生姓名及總分
[sql]
SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid
GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200
I. oracle在表中查詢姓名,學號,班級,成績,成績在整個年級的排名,成績在本班的排名,只查看年級排名前十的學生
兩個來辦法:
先找出年級排名前十源的,然後再根據班級排名即可。
把年級排名和班級排名全部列出,然後再找年級排名前十的。
相對而言第一種辦法比較好,二次查詢的時候相對內容要少些。
select rownum年級排名,rank() over( partition by class_no order by score) as 班級排名, name,stu_no,class_no,score from(select name,stu_no,class_no,score from table order by score) where rownum<=10.
第二種寫法則是反過來,先排全年級的名次和班級名次,然後再找年級排名前十。這樣做的話查詢壓力比較大。
select * from (select rank() over(order by score) as 年級排名,rank() over( partition by class_no order by score) as 班級排名,name,stu_no,class_no,score fromtable) where 年級排名<=10
J. sql查詢 從一張表中找到每個班成績排在第十名的信息。
SELECT*FROM(SELECTROW_NUMBER()OVER()ASNewPx,*FROMst_score)aWHEREa.NewPx=10