分組查詢最大 最小值sql

2021-07-24 11:41:26 字數 1038 閱讀 3664

經典題目:查詢每個班級的最高分,查詢每種日誌的最晚記錄

1.查詢每個班級的最高分(不考慮同一分數的)

思路:

首先利用max+group by取出每組最高的分數,再與表自連線

sql語句:

select t1.id, t1.name, t1.calssid, t2.score from t_zhb t1

(select calssid, max(score) as score from t_zhb group

by calssid) t2

using(calssid, score) ##等價於t1.calssid=t2.calssid and t1.score=t2.score

mysql 中聯接sql語句中,on子句的語法格式為:

table1.column_name = table2.column_name

當模式設計對聯接表的列採用了相同的命名樣式時,就可以使用 using 語法來簡化 on 語法,格式為:using(column_name)。

必須要有子查詢,子查詢先要排序,如果取最大,倒序排,反之,正序排。

注意:如果要考慮多人同分的,則需要用自連線方式實現分組排序,具體見:

同理,如果有乙個張日誌表t_log,表結構有id,logtime,type,content四個字段,想要獲取每種型別日誌的最晚記錄.

sql語句為:

select t1.id, t1.logtime, t2.type, t1.content from t_log t1

(select

type, max(logtime) as logtime from t_log group

bytype) t2

using(type, logtime)

分組查詢最大 最小值sql

經典題目 查詢每個班級的最高分,查詢每種日誌的最晚記錄 1.查詢每個班級的最高分 不考慮同一分數的 sql語句 select id,name,calssid,max score from select from t zhb order by score desc a group by calssid...

分組求最大最小值

按某一欄位分組取最大 小 值所在行的資料 資料如下 name val memo a 2 a2 a的第二個值 a 1 a1 a的第乙個值 a 3 a3 a的第三個值 b 1 b1 b的第乙個值 b 3 b3 b的第三個值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 建立表...

最大最小值

示例一 maximum lambda x,y x y x x y y 注意 x y 返回的是0或者1 minimum lambda x,y x y y x y x a 10 b 20 print the largar one is d maximum a,b print the lower one ...