• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

MySQL/MariaDB 資料庫 DISTINCT 刪除重複資料教學與範例

介紹如何使用 DISTINCT 將查詢結果中重複的資料移除,只留下不重複的資料。

刪除重複資料

假設我們已經建立了一張 persons 資料表,其內容如下:

-- 查看 persons 資料表內所有資料
SELECT * FROM persons;
+----+-------+------+---------+
| id | name  | age  | city    |
+----+-------+------+---------+
|  1 | Arden |   32 | Taipei  |
|  2 | Bond  |   54 | Taipei  |
|  3 | Cole  |   12 | Hsinchu |
|  4 | Dana  |   19 | Hsinchu |
| 19 | Bond  |   33 | Taipei  |
+----+-------+------+---------+

如果想要列出所有不重複的 city 資料,就可以使用 DISTINCT:

-- 列出所有不重複的 city 資料
SELECT DISTINCT city FROM persons;
+---------+
| city    |
+---------+
| Taipei  |
| Hsinchu |
+---------+

DISTINCT 只會刪除整列(row)完全相同的資料,如果我們同時看 name 與 city 兩個欄位,結果就會不同:

-- 列出所有不重複的 name 與 city 資料
SELECT DISTINCT name, city FROM persons;
+-------+---------+
| name  | city    |
+-------+---------+
| Arden | Taipei  |
| Bond  | Taipei  |
| Cole  | Hsinchu |
| Dana  | Hsinchu |
+-------+---------+

分組後刪除重複資料

如果想要計算各城市中不重複人數,可以配合 GROUP BY 的方式,依照城市分組,在將各城市內重複的人名刪除後計算總合:

-- 計算各城市不重複人數
SELECT city, COUNT(DISTINCT name) FROM persons GROUP BY city;
+---------+----------------------+
| city    | COUNT(DISTINCT name) |
+---------+----------------------+
| Taipei  |                    2 |
| Hsinchu |                    2 |
+---------+----------------------+

參考資料:MySQL Tutorial

分類:資料庫 標籤:MySQL/MariaDB

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide