如何使用distinct去重多個字段

一、distinct去重一個字段

SELECT DISTINCT column1 FROM table_name;

以上語句將返回指定表中唯一的column1值列表。

例如我們有一個students表,其中包含了每個學生的姓名和年齡,如下所示:

|  姓名  |  年齡  |
|--------|--------|
|   小明 |     12 |
|   小紅 |     11 |
|   小剛 |     12 |
|   小軍 |     13 |
|   小麗 |     14 |

如果我們只想得到唯一的年齡值,可以使用如下語句:

SELECT DISTINCT 年齡 FROM students;

結果將返回:

|  年齡 |
|-------|
|    12 |
|    11 |
|    13 |
|    14 |

二、distinct去重規則

當我們在使用DISTINCT時,需要注意一些規則:

  1. DISTINCT用於去除重複行,而不是重複列。也就是說,如果一行中的任何一列與另一行中的任何一列相同,那麼這兩行都將被去除。
  2. DISTINCT是一種關鍵字,但是它不會把所有列都變成唯一的,它只會使指定的列唯一。如果我們指定多個列,將檢查這些列的值是否與另一行的值完全相同。
  3. DISTINCT與GROUP BY不同,GROUP BY可以指定多個列。如果我們指定了多個列,則將按照這些列的值進行分組。

三、distinct後面多個字段

可以使用逗號分隔多列,指定多個列來指定distinct操作。例如:

SELECT DISTINCT column1, column2, column3 FROM table_name;

以上語句將返回指定表中唯一的column1、column2和column3值組合列表。

四、distinct兩個字段

例如我們有一個orders表,其中包含了訂單ID、產品ID、價格和客戶ID等信息,如下所示:

|  訂單ID  |  產品ID |  價格  |  客戶ID |
|----------|--------|--------|--------|
|     1001 |      1 |   39.99|       1|
|     1002 |      2 |   29.99|       2|
|     1003 |      3 |   99.99|       3|
|     1004 |      1 |   39.99|       2|
|     1005 |      2 |   29.99|       4|
|     1006 |      3 |   99.99|       5|

如果我們指定訂單ID和產品ID列唯一,那麼我們可以使用如下語句:

SELECT DISTINCT 訂單ID, 產品ID FROM orders;

結果將返回order表中唯一的訂單ID和產品ID:

| 訂單ID | 產品ID |
|--------|--------|
|   1001 |      1 |
|   1002 |      2 |
|   1003 |      3 |

五、distinct多個字段

如果我們想讓客戶ID、產品ID和價格的組合唯一,則可以使用如下語句:

SELECT DISTINCT 客戶ID, 產品ID, 價格 FROM orders;

結果將返回order表中唯一的客戶ID、產品ID和價格組合:

| 客戶ID | 產品ID | 價格  |
|-------|--------|-------|
|      1 |      1 | 39.99 |
|      2 |      2 | 29.99 |
|      3 |      3 | 99.99 |
|      2 |      1 | 39.99 |
|      4 |      2 | 29.99 |
|      5 |      3 | 99.99 |

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307354.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:06

相關推薦

發表回復

登錄後才能評論