mysql嵌套子查詢,group by用法 mysql_MYSQL GROUP BY用法詳解

 2023-10-04 阅读 25 评论 0

摘要:背景介紹最近在設計數據庫的時候因為開始考慮不周,所以產生了大量的重復數據。現在需要把這些重復的數據刪除掉,使用到的語句就是Group By來完成。為了進一步了解這條語句的作用,我打算先從簡單入手。建一個測試表create table test_group(id int auto_i

背景介紹

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

建一個測試表

create table test_group(id int auto_increment primary key, name varchar(32), class varchar(32), score int);

查看表結構

mysql嵌套子查詢。desc test_group

1d9f25ff6360f8a850b0e45b01c6d88a.png

插入數據

5c6f815dc0d10d885e92a036155b61fc.png

測試開始

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

select name, class , max(score) from test_group group by class;

343760e02ad7947d8ea4490e54fc2c8a.png

好現在可以插入幾條重復的數據。

mysql使用方法、insert into test_group(name, class, score)values('repeat','B',89);

95ab231b3015623a49db1ad3da8a8037.png

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

select name, class, max(id) from test_group group by name;

fe419d027f0cbfbf37822ce5ec93550a.png

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

select name, class, max(id) as max_id from test_group group by name;

71bf1b1c8cc346045dc343271c6b0324.png

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

group用法?select max_id from (select name, class, max(id) as max_id from test_group group by name)b;

bf072a957e4342f5d4dfe29c529b504c.png

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

select * from test_group;

e06250eb7cb311ff5241f20cdc6da68a.png

執行刪除操作。

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);

最后查看結果。

32f329e22e69f3aabd4015850c053adf.png

mysql group?總結

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

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

mysql如何查詢兩個日期之間最大的連續登錄天數

前言最近工作中遇到一個需求,是根據用戶連續記錄天數來計算的,求出用戶在一段時間內最大的連續記錄時間,例如在2016-01-01和2016-01-28之間,如果用

MySQL中字符串與Num類型拼接報錯的解決方法

mysql having、發現問題圖片地址如下http://qximg.lightplan.cc/2016/09/11/1473574486942944.jpeg需要實現的效果是要加上尺寸,如以下效果http://qximg.lightplan.cc/2016/09/11/1473574486942944.j

Mysql 安裝失敗的快速解決方法

在安裝mysql的過程中,出現的最麻煩的問題和解決方法安裝后,啟動不成功,就卡了,程序就沒有響應。如何解決:找到mysql安裝目錄下的#Pathtothedatabaseroo

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/113021.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息