SQL表分組後獲取最大值的整條記錄

2022-04-06 02:10:24 字數 1072 閱讀 7045

今天在工作的時候需要使用到乙個分組最大值查詢問題,蒐羅了一下答案,了解了一些,

為了鞏固知識,還是做一下測試為好

目標:根據course分組求出score最大值的整條記錄

例子:查詢乙個班級中各科目的第一名的整行記錄

建立測試表:

create table students

(course varchar(10),

stu_name varchar(10),

city varchar(10),

score int

)插入測試記錄:insert into students values('數學','jack','tianjin',80)

insert into students values('數學','jordan','tianjin',80)

insert into students values('數學','james','beijing',55)

insert into students values('英語','jack','tianjin',90)

insert into students values('英語','jordan','tianjin',60)

insert into students values('英語','james','beijing',100)

insert into students values('語文','jack','tianjin',60)

insert into students values('語文','tom','tianjin',77)

insert into students values('語文','jordan','tianjin',68)

想要抓取每個科目第一名的整條資訊,可以使用row_number()函式:

select *

from (

select course,stu_name,city,score,row_number() over(partition by course order by score desc) as rn

from students

) awhere a.rn <=1;

sql 分組後的最大值

friday february 10,2006 03 29pm cst select customerid,max balance from temptable1 group by customerid 就可以達到目的了,我竟然半天不知道怎麼下手。看來是被上次max a,b 問題嚇怕了。msn 的這...

MySQL查詢分組最大值所在整條記錄

建立了張測試的表user 查詢ip是127.0.0.1,使用者角色role為 user 和 tmp 中status最大的記錄所在整行記錄。我的查詢為先取出所要的最大值,作為條件再去查詢一遍。這樣可以得出想要的結果,但感覺有點繁瑣。網上有排序查詢的方法,先根據status排序,再根據role排序,下邊...

SQL分組最大值

employee表包含所有員工資訊,每個員工有其對應的 id,salary 和 department id。id name salary departmentid 1 joe 70000 1 2 henry 80000 2 3 sam 60000 2 4 max 90000 1 department...