首頁  >  文章  >  資料庫  >  mysql查詢最大值語句是什麼

mysql查詢最大值語句是什麼

coldplay.xixi
coldplay.xixi原創
2020-09-03 13:33:586154瀏覽

mysql查詢最大值語句是:先將stuname欄位分組;然後再用MAX函數計算每組中的最大值即可,程式碼為【SELECT a.stuname,MAX(a. score) AS..】。

mysql查詢最大值語句是什麼

【相關學習推薦:#mysql教學##(影片)】

mysql查詢最大值語句是:

1、方法1

SELECT a.stuname,MAX(a.score) AS score FROM stuscore a  GROUP BY a.`stuname` ;

在這個語句中,我們透過對stuname欄位進行分組,然後再用MAX()函數將每組中的最大值計算。

2、方法2:使用連接

SELECT a.stuname,a.score AS score FROM stuscore a JOIN 
stuscore b ON a.`stuname`=b.`stuname` 
 GROUP BY a.`score` HAVING a.`score`=MAX(b.`score`);

在第二個sql語句中,我們以stuname為判斷條件,對兩個表進行連接操作。如果只執行

SELECT a.stuname,a.score AS score FROM stuscore a JOIN

stuscore b ON a.stuname=b.stuname我們會得到下面的結果集:

mysql查詢最大值語句是什麼

之所以會得到這個結果集,是因為在連接時,左表中的每筆記錄都會根據連接條件

ON a.stuname=b.stuname「和右表中的每筆記錄進行匹配,這就是為什麼會出現重複記錄的原因。這個有點像程式語言中的「雙重循環」。

然後再加分組和分組條件

GROUP BY a.score HAVING a.score=MAX (b.score),就可以得到每個學生中的最大分數;

mysql查詢最大值語句是什麼

#其實

GROUP BY a.`score ` HAVING a.` score`=MAX(b.`score`)這個分組條件一開始我也是有點不大理解,就是說我是根據score字段進行分組的,但這裡的MAX()函數為什麼就可以計算出每個學生中的最大分數,我們知道第一種方法比較好理解就是對每個學生的姓名分組,然後用MAX()函數計算出其中的最大值,這是肯定的,但第二方法是對score欄位進行分組的。在這裡我覺得原因應該是,在將兩個表進行連接時,連接條件a.stuname=b.stuname已經對這些記錄根據學生姓名進行分組了,所以MAX(b.score)才可以計算出每個學生中的最大分數。

想了解更多程式設計學習,請關注

php培訓欄位!

以上是mysql查詢最大值語句是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn