Từ khóa DISTINCT trong SQL

Distinct trong SQL được dùng để làm gì? Dưới đây là những điều bạn cần biết về cách dùng select distinct trong SQL.

Từ khóa SQL DISTINCT được sử dụng trong các truy vấn để truy xuất các giá trị duy nhất từ cơ sở dữ liệu. Từ khóa này giúp loại bỏ các bản ghi trùng lặp khỏi tập kết quả. SQL DISTINCT cũng đảm bảo chỉ có các mục duy nhất được truy xuất. Cho dù bạn đang phân tích các tập dữ liệu hay thực hiện việc dọn dẹp dữ liệu, thì từ khóa DISTINCT đều quan trọng để đảm bảo tính toàn vẹn và độ chính xác của dữ liệu.

Ở bài viết này, chúng ta sẽ tìm hiểu về từ khóa DISTINCT trong SQL, cú pháp, ví dụ thực tế và các trường hợp sử dụng phổ biến. Chúng ta cũng sẽ thảo luận về cách DISTINCT hoạt động với nhiều hàm SQL khác nhau.

SQL DISTINCT là gì trong SQL?

Từ khóa distinct được sử dụng kết hợp với từ khóa select. Nó hữu ích khi cần tránh các giá trị trùng lặp có trong bất kỳ cột/bảng cụ thể nào. Khi chúng ta sử dụng từ khóa distinct, chỉ các giá trị duy nhất được lấy.

Cú pháp sử dụng DISTINCT trong SQL

Cú pháp cơ bản của từ khóa DISTINCT để loại bỏ các bản ghi trùng lặp là như sau:

SELECT DISTINCT cot1, cot2,... cotN 
FROM ten_bang
WHERE [dieu_kien]

Ví dụ về DISTINCT trong SQL

Giả sử bảng NHANVIEN có các bản ghi như sau:

+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+

Trước tiên, chúng ta hãy xem cách truy vấn SELECT trả về bản ghi mức lương trùng lặp như thế nào.

> SELECT LUONG 
FROM NHANVIEN
ORDER BY LUONG;

Trong kết quả thu được sau đây, LUONG 2000 xuất hiện 2 lần là một bản ghi trùng lặp từ bảng ban đầu.

+----------+
| LUONG    |
+----------+
|  1500.00 |
|  2000.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

Bây giờ, hãy sử dụng từ khóa DISTINCT với truy vấn SELECT và xem kết quả.

> SELECT DISTINCT LUONG 
FROM NHANVIEN
ORDER BY LUONG;
+----------+
| LUONG    |
+----------+
|  1500.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

Nhờ DISTINCT mà kết quả thu được không có bất kỳ mục nhập trùng lặp nào.

DISTINCTvới hàm COUNT()

Hàm COUNT() được dùng để lấy số bản ghi được tinh chỉnh lại bằng truy vấn SELECT. Bạn cần chuyển một biểu thức sang hàm này để truy vấn SELECT trả về số bản ghi thỏa mãn biểu thức đã chỉ định.

Nếu chuyển từ khóa DISTINCT sang hàm COUNT() dưới dạng một biểu thức, nó trả về số giá trị riêng trong một cột của bảng.

Cú pháp sử dụng DISTINCT với hàm COUNT():

SELECT COUNT(DISTINCT column_name)
FROM table_name WHERE condition;

Trong đó, column_name là tên cột mà bạn muốn đếm giá trị duy nhất. Table_name là tên bảng chứa dữ liệu.

Ví dụ:

Trong truy vấn sau, chúng ta truy xuất số độ tuổi khác nhau của khách hàng:

SELECT COUNT(DISTINCT AGE) as UniqueAge FROM CUSTOMERS;

Kết quả: UniqueAge = 6

Trong phần tiếp theo, chúng ta sẽ tìm hiểu về sắp xếp kết quả trong SQL, các bạn nhớ theo dõi nhé.

Thứ Sáu, 16/05/2025 15:28
3,411 👨 30.836
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    ❖ Học SQL
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng