學生表名為:student, 單科成績的字段為:subject。學生名字為:name
創(chuàng)新互聯(lián)建站自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鷹潭做網(wǎng)站,已為上家服務(wù),為鷹潭各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
查詢單科成績前十: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;
擴展資料:
學生成績表常用sql
1. 在表中插入符合主鍵
[sql]
/*成績表*/
CREATE TABLE SC
(
Sid INT REFERENCES Student(Sid), /*學生學號*/
Cid INT REFERENCES Course(Cid), /*課程編號*/
Score INT NOT NULL, /*課程分數(shù)*/
PRIMARY KEY(Sid,Cid) /*將學生學號和課程編號設(shè)為復合主鍵*/?
)
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?
/*此處應(yīng)注意,若不按照c.Cname進行分組,SQL語句會報錯,c.Cname在SELECT語句中不合法,因為它并未出現(xiàn)在聚合函數(shù)中也沒有出現(xiàn)在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?
/*以聚合函數(shù)為條件進行刪選只能在HAVING語句中進行,WHERE語句不支持聚合函數(shù)*/
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函數(shù),語法為
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
你好,很高興回答你的問題。
解決這個問題的大致sql是:
select 性別,avg(成績) from 表 group by 性別;
如果有幫助到你,請點擊采納。
我解答的大部分是軟件開發(fā)新人遇到的問題,如果有興趣可以關(guān)注我。
子查詢最大的成績,然后在一次對比
SELECT 字段? FROM? 表名? ?AS 表名,( SELECT 課程, max( 成績) AS maxscore FROM 表名? GROUP BY 課程 ) AS 表名1? WHERE? ?表名.課程= 表明1.課程? ?AND 表名.成績= ?表名1.成績;
MySQL查詢數(shù)學成績?yōu)?7,88,99的同學有很多種方式。比如:
select * from 成績表 where 數(shù)據(jù)成績字段名 in(77,88,99);