mysql查詢最大值語句是什么

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)才可以計算出每個學生中的最大分數。

想了解更多編程學習,敬請關注mysql教程欄目!

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享