❶ 用sql語句,查詢每個班級成績排名前三名的學生姓名
1、首先在打開的SQLServer中,假設有兩條數據中,包含有【張】,但是這個張一前一後,如下圖所示。
❷ 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 單表查詢各班級總分前三名
select class,total,name from (select *,ywsc+sxsc as total from st ORDER BY total DESC) b
where
not EXISTS(select * from (select *,ywsc+sxsc as total from st ORDER BY total DESC) c where c.class=b.class and b.total < c.total GROUP BY c.class HAVING COUNT(*)>2 )
ORDER BY b.class,b.total DESC
❹ SQL語句:查詢各班成績前3的同學姓名
分析如下:
可以用row_number函數來解決。
1、創建測試表,插入數據:
2、查詢每個班級的前三名,可用語句:
3、結果截圖:
拓展資料
(1)結構化查詢語言(Structured
Query
Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
(2)ql
語句就是對資料庫進行操作的一種語言。
(3)更新:update
table1
set
field1=value1
where
范圍。
(4)查找:select
*
from
table1
where
field1
like
』%value1%』
(所有包含『value1』這個模式的字元串)。
(5)排序:select
*
from
table1
order
by
field1,field2
[desc]。
(6)求和:select
sum(field1)
as
sumvalue
from
table1。
(7)平均:select
avg(field1)
as
avgvalue
from
table1。
(8)最大:select
max(field1)
as
maxvalue
from
table1。
(9)最小:select
min(field1)
as
minvalue
from
table1[separator]。
(資料來源:網路:SQL語句)
❺ oracle中的sql求總分前三名
可以用row_number來查詢。
1、創建數據表,插入數據:
createtablesc
(idint,
namevarchar(20),
classvarchar(20),
scoreint);
insertintoscvalues(1,'badkano','一年一班',100);
insertintoscvalues(2,'網路知道團長','一年一班',99);
insertintoscvalues(3,'小短','一年一班',95);
insertintoscvalues(4,'小小動','一年一班',97);
insertintoscvalues(5,'小智','一年一班',80);
insertintoscvalues(6,'呂布','一年二班',67);
insertintoscvalues(7,'趙雲','一年二班',90);
insertintoscvalues(8,'典韋','一年二班',89);
insertintoscvalues(9,'關羽','一年二班',70);
insertintoscvalues(10,'馬超','一年二班',98);
commit;
2、查詢分數的前三名,可用以下語句:
select*from
(selectrow_number()over(orderbyscoredesc)rn,sc.*fromsc)
wherern<=3;
3、結果顯示:
❻ 統計表裡記錄數前3名,的SQL怎麼寫
Select Top在不同資料庫中的使用用法:
1. Oracle資料庫 SELECT * FROM TABLE1 WHERE ROWNUM<=N
2. Infomix資料庫 SELECT FIRST N * FROM TABLE1
3. DB2資料庫
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N
或者 SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY
4. SQL Server資料庫 SELECT TOP N * FROM TABLE1
5. Sybase資料庫 SET ROWCOUNT N GO SELECT * FROM TABLE1
6. MySQL資料庫 SELECT * FROM TABLE1 LIMIT N
7. FoxPro資料庫 SELECT * TOP N FROM TABLE ORDER BY COLUMN
別人總結的,對應的地址:網頁鏈接
❼ 用SQL選出每個人成績的最高的前三條紀錄
--用開窗函數每個用戶成績排序
select*from
(selectt.*,row_number(partitionby用戶名orderby成績desc)asflagfrom表名t)
whereflag<=3
❽ 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語句)
❿ SQL難題:查詢所有學科成績都不及格的和總分排名前三名的
1、都不及格:
select
a.name,a.lesson,a.score
from
test
a,
(select
name,count(lesson)
as
cl
from
test
group
by
name)
b,
(select
name,count(lesson)
as
cl
from
test
where
score
<
60
group
by
name)
c
where
a.name=b.name
and
a.name=c.name
and
b.cl=c.cl
2、總分前三:(不太合理,學科不一樣,靠得越多,總分越高,業務需求有問題)
select
top
3
name,sum(score)
as
總分
from
test
gropu
by
name
order
by
2
回答者:
shaoshuai_bd
-
經理
五級
10-22
12:36
第二道題,二樓的寫法是sql
server的寫法,在oracle中是不能執行的,下面是
oracle中的寫法
select
*
from
(
select
name,sum(score)
as
z
from
a
group
by
name
order
by
z
desc)
where
rownum<=2