您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關mysql查詢最大值的方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
mysql查詢最大值語句是:首先通過對stuname字段進行分組;然后再用MAX函數對每組中的最大值進行計算即可,代碼為【SELECT a.stuname,MAX(a.score) AS..】。
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
我們會得到下面的結果集:
之所以會得到這個結果集,是因為在連接時,左表中的每條記錄都會根據連接條件ON a.stuname=b.stuname
“和右表中的每條記錄進行匹配,這就是為什么會出現重復記錄的原因。這個有點像編程語言中的“雙重循環”。
然后再加分組和分組條件GROUP BY a.score HAVING a.score=MAX(b.score)
,就可以得到每個學生中的最大分數;
其實GROUP BY a.`score ` HAVING a.`score`=MAX(b.`score`)
這個分組條件一開始我也是有點不大理解,就是說我是根據score字段進行分組的,但這里的MAX()函數為什么就可以計算出每個學生中的最大分數,我們知道第一種方法比較好理解就是對每個學生的姓名分組,然后用MAX()
函數計算出其中的最大值,這是肯定的,但第二方法是對score字段進行分組的。在這里我覺得原因應該是,在將兩個表進行連接時,連接條件a.stuname=b.stuname
已經對這些記錄根據學生姓名進行分組了,所以MAX(b.score)
才可以計算出每個學生中的最大分數。
關于mysql查詢最大值的方法有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。