當前位置:首頁 » 考試成績 » 查詢學生各門成績前三名

查詢學生各門成績前三名

發布時間: 2020-12-24 16:48:44

『壹』 mysql版 查詢各科成績前三名的記錄:(不考慮成績並列情況)

上面那條答案應該是可以的啊,可能是看起來復雜了點吧,我自己試過版是沒問題的:
SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE EXISTS
(SELECT COUNT(1)
FROM SC
WHERE t1.cno= cno AND t1.score<score
HAVING COUNT(1)<3)
ORDER BY t1.cno,score DESC
另外還有一種權類似的寫法:

SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE
(SELECT COUNT(cno)
FROM SC
WHERE t1.cno= cno AND t1.score<score)<3
ORDER BY t1.cno,score DESC

『貳』 SQL語句:查詢各班成績前3的同學姓名

分析如下:

可以用row_number函數來解決。

1、創建測試表,插入數據:

(資料來源:網路:SQL語句)

『叄』 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;

(3)查詢學生各門成績前三名擴展閱讀:

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

『肆』 SQL查詢每門成績前十學生

select top 10
from CJ
where sub = '語文'
union with
select top 10
from CJ
where sub = '數學'
select top 10
from CJ
where sub = '物理內容'
union with

『伍』 php怎麼各科查前三名的學生的成績

Order by 成績 desc limit 3

『陸』 access2003 查找各科成績80分以上的學生的總成績,並顯示前三名如何設定

查詢窗體的設計視圖請參照下圖:

下面是上圖對應的查詢窗體的SQL視圖。。

SELECTTOP3姓名專,數學,語文屬,英語,Val([數學])+Val([語文])+Val([英語])AS總成績
FROM成績表
GROUPBY姓名,數學,語文,英語
HAVING數學>"80"AND語文>"80"AND英語>"80"
ORDERBYVal([數學])+Val([語文])+Val([英語])DESC;

『柒』 用sql語句,查詢每個班級成績排名前三名的學生姓名

1、首先在打開的SQLServer中,假設有兩條數據中,包含有【張】,但是這個張一前一後,如下圖所示。

『捌』 SQL 查詢各門成績前兩名的學生

你先抽一條數據來反過來理解這條SQL

比如 你表格里的第一條:陳六、政治

SQL里的子句你內把t.subject 替換成 我們這條數據真容實的值,就可以看出來

select top 2 stu_id from stu_score where subject='政治' order by score desc

就是查詢我當前這條記錄對應的subject(政治)里,成績最高的兩條數據的 stu_id。


我再提供一種寫法給你

select*from(
selectt1.*,row_number()over()asfidfromstu_score)wherefid<=2

這種寫法主要是row_number() over(partition by subject order by score desc),

意思是:我按照subject 分組,根據score排序從大到小,分別標出序號fid。也就是我把不同subject的成績按從大到小排序,然後外層再取各自的前兩名

『玖』 sql語句 每科成績的前三名

可以用row_number函數來解決。
1、創建測試表,插入數據:
create table sc
(id int,
name varchar(20),
class varchar(20),
score int);

insert into sc values (1,'badkano','一年一班',100)
insert into sc values (2,'網路知道團長','一年一班',99)
insert into sc values (3,'小短','一年一班',95)
insert into sc values (4,'小小動','一年一班',97)
insert into sc values (5,'小智','一年一班',80)
insert into sc values (6,'呂布','一年二班',67)
insert into sc values (7,'趙雲','一年二班',90)
insert into sc values (8,'典韋','一年二班',89)
insert into sc values (9,'關羽','一年二班',70)
insert into sc values (10,'馬超','一年二班',98)
2、查詢每個班級的前三名,可用語句:

select * from
(select row_number() over (partition by class order by score desc) 排名,* from sc) t
where 排名<=3 order by class asc,score desc

『拾』 mysql 查詢每門成績的前十名

mysql 查詢每門成績的前十名
create table sc
(sno int,
cno int,
score);

insert into sc values (1,1,100);
insert into sc values (2,1,80);
insert into sc values (3,1,25);
insert into sc values (4,1,45);
insert into sc values (5,1,67);
insert into sc values (1,2,25);
insert into sc values (2,2,77);
insert into sc values (3,2,78);
insert into sc values (4,2,69);
insert into sc values (5,2,24);

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919