MYSQL GROUP BY用法詳解
背景介紹
最近在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候因?yàn)殚_(kāi)始考慮不周,所以產(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è)試開(kāi)始
我想知道當(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不在我們查詢(xún)結(jié)果里面的記錄。為了方便操作后對(duì)數(shù)據(jù)的對(duì)比,我先進(jìn)行一次全部查詢(xún)。
執(zhí)行刪除操作。
最后查看結(jié)果。
總結(jié)
MySQL操作還是很靈活的,之前一直喜歡用ORM現(xiàn)在感覺(jué)直接使用MYSQL省去了很多事。如果你有更好更高效的方式就請(qǐng)你分享分享吧~~
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
設(shè)置MySQL自動(dòng)增長(zhǎng)從某個(gè)指定的數(shù)開(kāi)始方法
下面小編就為大家?guī)?lái)一篇設(shè)置MySQL自動(dòng)增長(zhǎng)從某個(gè)指定的數(shù)開(kāi)始方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01MySQL千萬(wàn)級(jí)數(shù)據(jù)的大表優(yōu)化解決方案
mysql數(shù)據(jù)庫(kù)中的表數(shù)據(jù)量幾千萬(wàn)后,查詢(xún)速度會(huì)很慢,日常各種卡慢,嚴(yán)重影響使用體驗(yàn)。在考慮升級(jí)數(shù)據(jù)庫(kù)或者換用大數(shù)據(jù)解決方案前,必須優(yōu)化現(xiàn)有mysql數(shù)據(jù)庫(kù)表設(shè)計(jì)和sql語(yǔ)句。2022-11-11MySQL數(shù)據(jù)庫(kù)防止人為誤操作的實(shí)例講解
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)防止人為誤操作的方法,需要的朋友可以參考下2014-06-06MySQL主庫(kù)binlog(master-log)與從庫(kù)relay-log關(guān)系代碼詳解
這篇文章主要介紹了MySQL主庫(kù)binlog與從庫(kù)relay-log關(guān)系的相關(guān)內(nèi)容,涉及部分代碼,需要的朋友可以參考。2017-10-10Mysql數(shù)據(jù)庫(kù)編碼問(wèn)題 (修改數(shù)據(jù)庫(kù),表,字段編碼為utf8)
個(gè)人建議,數(shù)據(jù)庫(kù)字符集盡量使用 utf8(HTML頁(yè)面對(duì)應(yīng)的是utf-8),以使你的數(shù)據(jù)能很順利的實(shí)現(xiàn)遷移2011-10-10Mysql數(shù)據(jù)庫(kù)慢查詢(xún)常用優(yōu)化方式
數(shù)據(jù)庫(kù)SQL優(yōu)化是老生常談的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫(kù)慢查詢(xún)常用優(yōu)化方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能
這篇文章主要介紹了MySQL如何基于Explain關(guān)鍵字優(yōu)化索引功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10保證MySQL與Redis數(shù)據(jù)一致性的6種實(shí)現(xiàn)方案
這篇文章將聚焦在一個(gè)非常重要且復(fù)雜的問(wèn)題上:MySQL與Redis數(shù)據(jù)的一致性,當(dāng)我們?cè)趹?yīng)用中同時(shí)使用MySQL和Redis時(shí),如何保證兩者的數(shù)據(jù)一致性呢?下面就來(lái)分享幾種實(shí)用的解決方案,需要的朋友可以參考下2024-03-03mysql 選擇插入數(shù)據(jù)(包含不存在列)具體實(shí)現(xiàn)
mysql 選擇插入數(shù)據(jù)的文章會(huì)搜到很多本例特色是包含不存在列,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08一文詳解Mysql?insert也會(huì)發(fā)生死鎖嗎
死鎖的本質(zhì)是資源競(jìng)爭(zhēng),批量插入如果順序不一致很容易導(dǎo)致死鎖,這篇文章主要給大家介紹了關(guān)于Mysql?insert是否也會(huì)發(fā)生死鎖的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02