中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么清除結果集的重復數據

發布時間:2021-08-02 16:14:11 來源:億速云 閱讀:415 作者:Leah 欄目:數據庫

這期內容當中小編將會給大家帶來有關MySQL中怎么清除結果集的重復數據,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、關鍵字Distinct和Distinctrow
  關鍵字distinct一般直接跟在查詢語句中SELECT的后面,替換可選的關鍵字all,而關鍵字all是默認的。Distinctrow是distinct的別名,它產生的效果與distinct是完成一樣的:

雙擊代碼全選
1 2 3 4SELECT [ALL | DISTINCT | DISTINCTROW ]select_expr[FROM table_references[WHERE where_condition]

  為了說明這些關鍵字的用法,我們以下表中的數據為例來進行說明。其中,該表含有一些水果名稱及其對應的顏色:

  以下查詢將從上表中檢索所有水果的名稱,并按字母順序將其列出:

雙擊代碼全選
1 2SELECT nameFROM fruits;

  由于沒有附帶顏色信息,所以每種水果品種的是重復的:

  現在,讓我們使用關鍵字distinct再查詢一次,看看結果如何:

雙擊代碼全選
1 2SELECT DISTINCT nameFROM fruits;

  不出所料,由于附帶了水果的顏色信息,所以每種水果的名稱只出現了一次:

  二、重復數據的取舍
  有時候,是不能使用關鍵字distinct的,因為刪除復制的數據會導致錯誤的結果。請考慮下列情形:
  客戶想要生成一張職工表,以便進行某些資料統計。 為此,我們可以使用下列命令:

雙擊代碼全選
1 2 3 4 5SELECT name,        gender,              salaryFROM employeesORDER BY name;

  奇怪的是,結果中出現了重復的“Kristen Ruegg”:

   客戶說,他們不希望出現重復,所以開發人員在SELECT語句中加入了關鍵字distinct。 好了,這會能夠滿足客戶的要求了,但是問題也隨之而來了,因為公司確實有兩個重名的員工。所以,添加關鍵字distinct刪除了一個有效的記錄,因此得 到的結果實際上錯誤的。我們可以通過emp_id_number來確認一下,的確有兩名員工都叫Kristen Rueggs:

雙擊代碼全選
1 2 3 4 5 6SELECT name,        gender,              salary,        emp_id_numberFROM employeesORDER BY name;

  下面是出現問題的數據,它們的emp_id_numbers都是唯一的:

  上面的情形告訴我們:使用關鍵字distinct的時候,要確保不會無意中刪除有效數據!
  三、關鍵字Distinct與Group By的區別
   使用distinct與不使用聚合功能情況下對全選所有欄數據進行分組的邏輯效果是一樣的。對于這樣的查詢,group by命令只是生產了一列分組后的值。在顯示某欄并對齊分組的時候,該查詢會給出該欄中不同的值。然而,在顯示多欄并對它們進行分組的時候,該查詢會給出每 欄中的值的不同的組和。例如,以下查詢生成的結果與第一個SELECT distinct命令的結果完全一樣:

雙擊代碼全選
1 2 3SELECT nameFROM fruits GROUP BY name;

  同樣地,以下語句生成的結果,與我們的SELECT distinct語句在員工表上生成的結果也完全一樣:

雙擊代碼全選
1 2 3 4 5SELECT name,        gender,              salary FROM employeesGROUP BY name;

  關鍵字distinct和group by的區別在于,group by子句會對數據記錄進行排序。因此:

雙擊代碼全選
1 2 3 4 5 6 7 8 9 10 11SELECT name,        gender,              salary FROM employeesGROUP BY name;  或者:SELECT DISTINCT name,                 gender,                       salary FROM employeesORDER BY name;

四、統計重復的數據
  關鍵字Distinct可以用于COUNT()函數,來統計一欄中包含多少不同的值。COUNT ( distinct expression)將統計給定表達式在不同的非零值的數量。該表達式可以是要統計其中不同的非零值的數量的欄名。
  下面是表employee中的所有數據:

  對name字段應用Count distinct函數會得到六個不同的名稱:

上述就是小編為大家分享的MySQL中怎么清除結果集的重復數據了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻城市| 白沙| 眉山市| 璧山县| 西安市| 宁晋县| 仁布县| 台中县| 武山县| 曲靖市| 胶南市| 集贤县| 和田县| 荔浦县| 玉林市| 乌海市| 新营市| 宁化县| 贺兰县| 阳谷县| 孟州市| 晴隆县| 改则县| 云林县| 阜南县| 吉安县| 郑州市| 鄂州市| 灵山县| 河西区| 吉林市| 铁岭县| 安图县| 长海县| 乌海市| 牙克石市| 乌兰察布市| 清远市| 阿克苏市| 吉林省| 黑水县|