最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL GROUP BY用法詳解

 更新時(shí)間:2016年10月22日 11:05:59   作者:Landpack  
這篇文章主要為大家詳細(xì)介紹了MYSQL GROUP BY用法,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下

背景介紹

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

建一個(gè)測試表

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

查看表結(jié)構(gòu)

desc test_group

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

測試開始

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

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

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

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


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

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

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

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

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

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

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

復(fù)制代碼 代碼如下:
select * from test_group;

執(zhí)行刪除操作。

復(fù)制代碼 代碼如下:
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);

最后查看結(jié)果。

總結(jié)

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡單教程

    MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡單教程

    這篇文章主要介紹了MySQL中數(shù)據(jù)導(dǎo)入恢復(fù)的簡單教程,主要用到了LOAD DATA語句,需要的朋友可以參考下
    2015-05-05
  • mysql千萬級數(shù)據(jù)分頁查詢性能優(yōu)化

    mysql千萬級數(shù)據(jù)分頁查詢性能優(yōu)化

    本文給大家分享的是作者在使用mysql進(jìn)行千萬級數(shù)據(jù)量分頁查詢的時(shí)候進(jìn)行性能優(yōu)化的方法,非常不錯(cuò)的一篇文章,對我們學(xué)習(xí)mysql性能優(yōu)化非常有幫助
    2017-11-11
  • mysql如何存儲(chǔ)地理信息

    mysql如何存儲(chǔ)地理信息

    MySQL存儲(chǔ)地理信息通常使用GEOMETRY數(shù)據(jù)類型或其子類型,為了支持這些數(shù)據(jù)類型,MySQL 提供了?SPATIAL?索引,這允許我們執(zhí)行高效的地理空間查詢,這篇文章主要介紹了mysql如何存儲(chǔ)地理信息,需要的朋友可以參考下
    2024-05-05
  • mysql存儲(chǔ)emoji表情報(bào)錯(cuò)的處理方法【更改編碼為utf8mb4】

    mysql存儲(chǔ)emoji表情報(bào)錯(cuò)的處理方法【更改編碼為utf8mb4】

    這篇文章主要介紹了mysql存儲(chǔ)emoji表情報(bào)錯(cuò)的處理方法,較為詳細(xì)的分析了通過更改mysql編碼為utf8mb4解決存儲(chǔ)emoji表情報(bào)錯(cuò)的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • MySQL中crash safe數(shù)據(jù)完整性機(jī)制面試精講

    MySQL中crash safe數(shù)據(jù)完整性機(jī)制面試精講

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)完整性crash safe特性面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 千萬級記錄的Discuz論壇導(dǎo)致MySQL CPU 100%的優(yōu)化筆記

    千萬級記錄的Discuz論壇導(dǎo)致MySQL CPU 100%的優(yōu)化筆記

    談到自己在解決一個(gè)擁有 60 萬條記錄的 MySQL 數(shù)據(jù)庫訪問時(shí),導(dǎo)致 MySQL CPU 占用 100% 的經(jīng)過。在解決問題完成優(yōu)化(optimize)之后,我發(fā)現(xiàn) Discuz 論壇也存在這個(gè)問題,當(dāng)時(shí)稍微提了一下
    2010-12-12
  • Mysql基礎(chǔ)知識(shí)點(diǎn)匯總

    Mysql基礎(chǔ)知識(shí)點(diǎn)匯總

    本文給大家匯總介紹了mysql的23個(gè)基礎(chǔ)的知識(shí)點(diǎn),這些都是學(xué)習(xí)mysql的必備知識(shí),小伙伴們可以參考下。
    2015-09-09
  • MYSQL中的簡單查詢

    MYSQL中的簡單查詢

    這篇文章詳細(xì)介紹了MySQL中常見的查詢語法,包括SELECT語句的簡單查詢、基于表的查詢、基于條件的查詢、基于分組的查詢等,它還解釋了COUNT()、SUM()、AVG()、MAX()和MIN()等聚合函數(shù)的使用,以及GROUP BY和HAVING子句在分組查詢中的應(yīng)用
    2025-02-02
  • 連接MySql速度慢的解決方法(skip-name-resolve)

    連接MySql速度慢的解決方法(skip-name-resolve)

    這篇文章主要介紹了連接MySql速度慢的解決方法(skip-name-resolve),需要的朋友可以參考下
    2015-09-09
  • 詳解一條sql語句在mysql中是如何執(zhí)行的

    詳解一條sql語句在mysql中是如何執(zhí)行的

    這篇文章主要介紹了一條sql語句在mysql中是如何執(zhí)行的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

科技| 五河县| 沂南县| 四子王旗| 佛冈县| 清涧县| 莱西市| 新巴尔虎右旗| 西贡区| 延吉市| 偏关县| 诸城市| 伽师县| 安乡县| 临清市| 龙游县| 仁寿县| 井研县| 五台县| 南华县| 孝昌县| 芦溪县| 长垣县| 渝中区| 永和县| 永德县| 诸城市| 伊宁市| 新乐市| 洪雅县| 偏关县| 郧西县| 湘西| 丰台区| 美姑县| 玉树县| 柘荣县| 寿阳县| 老河口市| 阿拉善左旗| 扬中市|