當前位置:首頁 » 網路資訊 » 查詢表中前十名資料庫怎樣寫
擴展閱讀
可以查到時政的網站 2025-05-17 23:17:00
有沒有網站可以發表作詞 2025-05-17 22:47:59

查詢表中前十名資料庫怎樣寫

發布時間: 2023-02-08 05:30:24

A. 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;

(1)查詢表中前十名資料庫怎樣寫擴展閱讀:

學生成績表常用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

B. 查詢資料庫表中前10條記錄怎麼寫呢

查詢前十條記錄(順數)select top 10 * form 表 where ..." '也可以不要後面的where子句
查詢後十條記錄(倒數)select top 10 * form 表 where ... order by id desc"'注:ID是資料庫自動編號