佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > MYSQL GROUP BY用法詳解

MYSQL GROUP BY用法詳解

熱門標簽:Linux服務器 網站排名優(yōu)化 鐵路電話系統(tǒng) AI電銷 服務外包 地方門戶網站 呼叫中心市場需求 百度競價排名

背景介紹

最近在設計數(shù)據(jù)庫的時候因為開始考慮不周,所以產生了大量的重復數(shù)據(jù)。現(xiàn)在需要把這些重復的數(shù)據(jù)刪除掉,使用到的語句就是Group By來完成。為了進一步了解這條語句的作用,我打算先從簡單入手。

建一個測試表

復制代碼 代碼如下:
create table test_group(id int auto_increment primary key, name varchar(32), class varchar(32), score int);

查看表結構

desc test_group

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

測試開始

我想知道當前每一個班級里面最高分數(shù)的同學是誰。

復制代碼 代碼如下:
select name, class , max(score) from test_group group by class;

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

復制代碼 代碼如下:
insert into test_group(name, class, score)values('repeat','B',89);


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

復制代碼 代碼如下:
select name, class, max(id) from test_group group by name;

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

復制代碼 代碼如下:
select name, class, max(id) as max_id from test_group group by name;

下一步就是把這些關心的數(shù)據(jù)保留下來,我先把這些數(shù)據(jù)的id提取出來。因為這個是唯一確定一條記錄的。

復制代碼 代碼如下:
select max_id from (select name, class, max(id) as max_id from test_group group by name)b;

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

復制代碼 代碼如下:
select * from test_group;

執(zhí)行刪除操作。

復制代碼 代碼如下:
delete from test_group where id not in (select max_id from (select name, class, max(id) as max_id from test_group group by name)b);

最后查看結果。

總結

MySQL操作還是很靈活的,之前一直喜歡用ORM現(xiàn)在感覺直接使用MYSQL省去了很多事。如果你有更好更高效的方式就請你分享分享吧~~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Mysql利用group by分組排序
  • MySQL5.7 group by新特性報錯1055的解決辦法
  • sql中 order by 和 group by的區(qū)別
  • mysql group by having 實例代碼
  • Mysql中錯誤使用SQL語句Groupby被兼容的情況
  • mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法
  • MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描)
  • MySQL分組查詢Group By實現(xiàn)原理詳解
  • SQL GROUP BY 詳解及簡單實例

標簽:湖南 蘭州 湘潭 銅川 仙桃 崇左 衡水 黃山

巨人網絡通訊聲明:本文標題《MYSQL GROUP BY用法詳解》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    巴彦淖尔市| 育儿| 县级市| 冷水江市| 临澧县| 广饶县| 偏关县| 九寨沟县| 临清市| 通辽市| 陆河县| 阿合奇县| 田阳县| 昭苏县| 龙胜| 拜泉县| 象州县| 东港市| 增城市| 武冈市| 内乡县| 株洲县| 宝丰县| 崇仁县| 玉溪市| 苍溪县| 凤阳县| 廊坊市| 陆良县| 黄浦区| 遵义市| 芜湖市| 尼玛县| 神农架林区| 获嘉县| 昌江| 五大连池市| 新兴县| 轮台县| 阿瓦提县| 辽源市|