一、distinct去重一個字段
SELECT DISTINCT column1 FROM table_name;
以上語句將返回指定表中唯一的column1值列表。
例如我們有一個students表,其中包含了每個學生的姓名和年齡,如下所示:
| 姓名 | 年齡 | |--------|--------| | 小明 | 12 | | 小紅 | 11 | | 小剛 | 12 | | 小軍 | 13 | | 小麗 | 14 |
如果我們只想得到唯一的年齡值,可以使用如下語句:
SELECT DISTINCT 年齡 FROM students;
結果將返回:
| 年齡 | |-------| | 12 | | 11 | | 13 | | 14 |
二、distinct去重規則
當我們在使用DISTINCT時,需要注意一些規則:
- DISTINCT用於去除重複行,而不是重複列。也就是說,如果一行中的任何一列與另一行中的任何一列相同,那麼這兩行都將被去除。
- DISTINCT是一種關鍵字,但是它不會把所有列都變成唯一的,它只會使指定的列唯一。如果我們指定多個列,將檢查這些列的值是否與另一行的值完全相同。
- 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