經典題目:查詢每個班級的最高分,查詢每種日誌的最晚記錄
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 ...