MYSQL GROUP BY用法詳解
背景介紹
最近在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候因?yàn)殚_始考慮不周,所以產(chǎn)生了大量的重復(fù)數(shù)據(jù)?,F(xiàn)在需要把這些重復(fù)的數(shù)據(jù)刪除掉,使用到的語(yǔ)句就是Group By來(lái)完成。為了進(jìn)一步了解這條語(yǔ)句的作用,我打算先從簡(jiǎn)單入手。
建一個(gè)測(cè)試表
查看表結(jié)構(gòu)
desc test_group

插入數(shù)據(jù)

測(cè)試開始
我想知道當(dāng)前每一個(gè)班級(jí)里面最高分?jǐn)?shù)的同學(xué)是誰(shuí)。

好現(xiàn)在可以插入幾條重復(fù)的數(shù)據(jù)。

現(xiàn)在要過(guò)濾掉重復(fù)的數(shù)據(jù),保留最新的那條記錄。一般我們假設(shè)最新的記錄是最后插入的那條,所以它的ID應(yīng)該是最大的那條。

可以發(fā)現(xiàn),我們關(guān)注那個(gè)項(xiàng)的重復(fù)性就把它放到gourp by后面。這樣我們就可以過(guò)濾掉那些與這個(gè)項(xiàng)重復(fù)的記錄啦。現(xiàn)在我們得到了我們需要的數(shù)據(jù),我們下一步就是把那些重復(fù)的數(shù)據(jù)刪除。為了區(qū)分我們過(guò)濾出來(lái)的數(shù)據(jù)記錄與原有的記錄,我們可以給id取一個(gè)別名。

下一步就是把這些關(guān)心的數(shù)據(jù)保留下來(lái),我先把這些數(shù)據(jù)的id提取出來(lái)。因?yàn)檫@個(gè)是唯一確定一條記錄的。

下面就是刪除操作了。思路就是刪除那些數(shù)據(jù)ID不在我們查詢結(jié)果里面的記錄。為了方便操作后對(duì)數(shù)據(jù)的對(duì)比,我先進(jìn)行一次全部查詢。

執(zhí)行刪除操作。
最后查看結(jié)果。

總結(jié)
MySQL操作還是很靈活的,之前一直喜歡用ORM現(xiàn)在感覺(jué)直接使用MYSQL省去了很多事。如果你有更好更高效的方式就請(qǐng)你分享分享吧~~
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡(jiǎn)單教程
這篇文章主要介紹了MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡(jiǎn)單教程,主要用到了LOAD DATA語(yǔ)句,需要的朋友可以參考下2015-05-05
mysql千萬(wàn)級(jí)數(shù)據(jù)分頁(yè)查詢性能優(yōu)化
本文給大家分享的是作者在使用mysql進(jìn)行千萬(wàn)級(jí)數(shù)據(jù)量分頁(yè)查詢的時(shí)候進(jìn)行性能優(yōu)化的方法,非常不錯(cuò)的一篇文章,對(duì)我們學(xué)習(xí)mysql性能優(yōu)化非常有幫助2017-11-11
mysql存儲(chǔ)emoji表情報(bào)錯(cuò)的處理方法【更改編碼為utf8mb4】
這篇文章主要介紹了mysql存儲(chǔ)emoji表情報(bào)錯(cuò)的處理方法,較為詳細(xì)的分析了通過(guò)更改mysql編碼為utf8mb4解決存儲(chǔ)emoji表情報(bào)錯(cuò)的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
MySQL中crash safe數(shù)據(jù)完整性機(jī)制面試精講
這篇文章主要為大家介紹了MySQL數(shù)據(jù)完整性crash safe特性面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
千萬(wàn)級(jí)記錄的Discuz論壇導(dǎo)致MySQL CPU 100%的優(yōu)化筆記
談到自己在解決一個(gè)擁有 60 萬(wàn)條記錄的 MySQL 數(shù)據(jù)庫(kù)訪問(wèn)時(shí),導(dǎo)致 MySQL CPU 占用 100% 的經(jīng)過(guò)。在解決問(wèn)題完成優(yōu)化(optimize)之后,我發(fā)現(xiàn) Discuz 論壇也存在這個(gè)問(wèn)題,當(dāng)時(shí)稍微提了一下2010-12-12
連接MySql速度慢的解決方法(skip-name-resolve)
這篇文章主要介紹了連接MySql速度慢的解決方法(skip-name-resolve),需要的朋友可以參考下2015-09-09
詳解一條sql語(yǔ)句在mysql中是如何執(zhí)行的
這篇文章主要介紹了一條sql語(yǔ)句在mysql中是如何執(zhí)行的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

