mysql去重複關鍵字distinct的用法

2022-07-18 18:06:19 字數 1382 閱讀 8948

distinct的去重複的提前是表中所有列的資料完成相同時,才能把相同的資料只保留一條,並不是 distinct 列名,除去某一列相同的資料,並且 distinct要放在第乙個列前面。案例如下:乙個學生表如下:第一條記錄跟第四條記錄完成相同 第一條的性名列跟第二條相同。

現在除掉相同的姓名的資料,只保留一條。**如下:

select id as "學號", ifnull (age,0) as "年齡",distinct s.`name` as "姓名", brithday as "生日", s.`intsert_time` as "插入時間"   from stu1 s ;結果報如下錯:

既然distinct 只能放在第一列前,哪我把姓名列移動第一列看看**如下:

select distinct s.`name` as "姓名", id as "學號", ifnull (age,0) as "年齡", brithday as "生日", s.`intsert_time` as "插入時間" from stu1 s ;

執行結果卻是去掉第四條資料,但是沒有去掉第二條資料。說明distinct去重複要求某幾條資料完成一樣才會去重複。執行結果如下圖:

如果想姓名列相同,只保留一條記錄,那麼可以考慮group by 分組,現在用group by 看看效果,**如下:

select distinct s.`name` as "姓名", id as "學號", ifnull (age,0) as "年齡", brithday as "生日", s.`intsert_time` as "插入時間" from stu1 s group by s.`name`; 

執行結果只保留第一條記錄,第2,4條資料都去掉了。

如果我們只需要計算某個欄位去重複後的總記錄數的話可以用以下**:

select count(distinct s.name) as "唯一姓名總數"  from stu1 s;  結果如下:

總結一下:如果我們需要去掉完全重複的資料可以用distinct放在第一列資料前面,如果我們只需要按照某列相同去掉重複的資料,可以用group by 進行分組。如果我們只需要計算某乙個欄位去重複後的總記錄數可以 用 count(distinct 列名)聚合函式的方式獲取。

MySQL常用關鍵字

1.in 關鍵字 in關鍵字,用於判斷某個欄位的值,是否在指定的集合中 如果欄位的值在集合中,則滿足條件,該欄位所在的資料將會被查詢出來。語法格式 select from 表名 where 欄位名 not in 元素1,元素2,引數說明 元素1,元素2,表示集合中的元素,即指定的條件範圍 注 這裡也...

mysql空間索引關鍵字 MySQL

19.6.1.建立空間索引 mysql能夠使用與建立正規索引類似的語法建立空間索引,但使用了spatial關鍵字進行了擴充套件。對於目前編制了索引的空間列,必須將其宣告為not null。在下面的示例中,介紹了建立空間索引的方法。對於create table mysql create table g...

mysql 中limit 關鍵字

一 基本 sql的limit語法的如以下形式 select from table limit offset rows rows offset offset 當省略offset 的時候,offset作為0 處理,表示提取查詢到的前 rows 條資料 當offse t 0時候,表示提取查詢到的 從off...