Từ khóa DISTINCT trong SQL

DISTINCT trong SQL là gì? Cách dùng Select Distinct trong SQL như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Muốn lập trình tốt, bạn không thể thiếu kiến thức về SQL. Nó là phương tiện giúp bạn quản lý cơ sở dữ liệu hiện quả do Microsoft phát triển. Học SQL không khó. Hãy bắt đầu từ những khái niệm cơ bản nhất. Ở bài học này là DISTINCT trong SQL.

Trong SQL, từ khóa DISTINCT được sử dụng kết hợp với câu lệnh SELECT để loại bỏ tất cả các bản ghi trùng lặp và chỉ lấy các bản ghi duy nhất trong bảng.

Có thể có trường hợp xảy ra là bạn có nhiều bản ghi trùng lặp trong 1 bảng. Trong khi tìm và hiển thị các bản ghi, sẽ hợp lý hơn nếu chỉ tìm nạp các bản ghi duy nhất thay vì hiển thị cả bản ghi trùng lặp, khi đó ta sẽ cần dùng tới câu lệnh SELECT DISTINCT

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ứ Tư, 18/10/2023 17:05
3,510 👨 25.689
0 Bình luận
Sắp xếp theo
    ❖ Học SQL