Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Nội dung được viết bởi Kim Thu

Trong SQL sẽ bao gồm nhiều trường dữ liệu, mỗi trường lại có nhiều giá trị giống nhau và khác nhau. Khi truy vấn mà bạn muốn loại bỏ các giá trị trùng lặp và chỉ giữ lại các giá trị duy nhất thì bạn sẽ sử dụng từ khóa DISTINCT với câu lệnh SELECT trong SQL. 

Vậy DISTINCT trong SQL là gì, cú pháp và cách dùng như thế nào? Cùng tìm hiểu ngay nhé!

Từ khóa DISTINCT trong mySQL là gì?

DISTINCT trong SQL là từ khóa được dùng để loại bỏ các giá trị trùng lặp trong kết quả truy vấn và chỉ giữ lại các giá trị duy nhất trong các cột được chọn. Khi bạn sử dụng DISTINCT trong câu lệnh, các truy vấn sẽ trả về mỗi hàng trong kết quả là duy nhất.

Lưu ý khi sử dụng hàm DISTINCT trong SQL:

  • Nếu trong cú pháp chứa từ khóa DISTINCT chỉ có duy nhất một biểu thức thì kết quả truy vấn sẽ là các giá trị duy nhất của biểu thức đó. (biểu thức ở đây sẽ là một cột cụ thể, hoặc là kết quả của một phép toán hay một hàm áp dụng lên các cột).
  • Còn nếu cú pháp chứa từ khóa DISTINCT có nhiều biểu thức thì truy vấn sẽ trả về kết quả là tổ hợp các giá trị duy nhất của biểu thức đó.
  • Trong trường hợp nếu biểu thức có chứa giá trị NULL thì nó cũng sẽ được tính vào và khi truy vấn cũng sẽ ra kết quả NULL.

Thông thường trong SQL thì chúng ta thường kết hợp từ khóa DISTINCT trong các câu lệnh SELECT để loại bỏ các giá trị trùng lặp trong kết quả truy vấn. Chúng ta cùng tìm hiểu kỹ hơn trong phần tiếp theo nhé.

Câu lệnh SELECT DISTINCT trong SQL

Hướng dẫn này Gitiho sẽ thực hiện trên file dữ liệu của mình trong SQL. Bạn hãy mở SQL có database của bạn để thực hành theo nhé. 

Cú pháp SELECT DISTINCT trong SQL

Dưới đây là cú pháp SELECT DISTINCT mà bạn sẽ sử dụng trong SQL:

SELECT DISTINCT field_name
FROM table_name;

Trong đó:

  • column1, column2: là tên trường (cột) hay giá trị tính toán bạn muốn truy vấn.
  • table_name: là bảng chứa bản ghi và mệnh đề FROM bắt buộc phải có tối thiểu 1 bảng.

Cách dùng câu lệnh SELECT DISTINCT trong SQL

Trong bài trước thì chúng ta đã tìm hiểu về câu lệnh SELECT trong SQL để lấy dữ liệu từ các bảng trong cơ sở dữ liệu. Sau khi dùng câu lệnh SELECT, bạn có thể thấy các thông tin về thành phố và mã của các quốc gia đó được truy xuất ra từ database của tôi.

Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Nhìn vào bảng này, bạn có thể cột EnglishCountryRegionName có nhiều giá trị trùng lặp với nhau chẳng hạn như Australia, Canada, Đức,... Trong trường hợp dữ liệu nhiều như này, chúng ta sẽ muốn nhìn được tổng quan có bao nhiêu vùng quốc gia khác nhau ở trong database của mình.

Khi này thì bạn sẽ sử dụng câu lệnh SELECT chứa từ khóa DISTINCT với các bước thực hiện như sau:

Bước 1: Bạn nhập công thức theo như cú pháp mà tôi đã hướng dẫn ở trên và thay các tên trường và bảng tương ứng.

Ví dụ tôi sẽ nhập công thức:

SELECT DISTINCT EnglishCountryRegionName FROM Geographic

Mẹo: Bạn có thể nhập tên bảng FROM Geographic trước để khi gõ tên trường sẽ nhanh chóng hơn. Bạn chỉ cần nhập vài chữ cái đầu của EnglishCountryRegionName là SQL sẽ gợi ý ra tên trường chính xác rồi click chọn là xong.

Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Bước 2: Bạn nhấn chạy công thức để SQL truy vấn kết quả ra cho bạn, và bạn có thể thấy trường dữ liệu của tôi bao gồm 6 đất nước khác nhau trong bảng Geographic như sau:

Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Ngoài ra, để thành thạo từ khóa DISTINCT trong SQL và các câu lệnh hay hàm thông dụng khác, bạn có thể đăng ký tham gia khóa học SQL để thành thạo công cụ truy vấn mạnh mẽ này từ cơ bản đến nâng cao nhé:

Cú pháp COUNT DISTINCT trong SQL

Trong phần trên, chúng ta đã sử dụng câu lệnh SELECT DISTINCT để trả về kết quả là có 6 quốc gia. Tuy nhiên, trong nhiều trường hợp, database của bạn có nhiều quốc gia khác nhau trong một trường dữ liệu thì việc đếm có bao nhiêu giá trị khác nhau tương đối mất thời gian và dễ nhầm lẫn.

Do đó, chúng ta sẽ thêm hàm COUNT trước cụm DISTINCT trong cú pháp để đếm số giá trị khác nhau của trường. Cụ thể, câu lệnh sẽ được viết như sau:

SELECT COUNT(DISTINCT field_name) 
FROM table_name;

Trong đó: 

  • field_name: là tên trường hoặc cột mà bạn đang muốn truy vấn giá trị.
  • table_name: dữ liệu được lấy từ bảng nào trong database.

Ví dụ: Tôi sẽ viết công thức để đếm số quốc gia có trong trường EnglishCountryRegionName ở phần trên như sau:

SELECT COUNT (DISTINCT EnglishCountryRegionName) FROM Geographic
Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Khi thực hiện chạy câu lệnh thì bạn có thể thấy kết quả hiển thị ra là 6, tương ứng với 6 quốc gia trong trường EnglishCountryRegionName của bảng Geographic. Đây là một trong những ứng dụng mà chúng ta sẽ sử dụng nhiều sau này khi làm báo cáo, thực hiện thống kê để đếm có bao nhiêu giá trị khác nhau trong một bảng hoặc một database.

Cách dùng từ khóa DISTINCT trong SQL để truy vấn các giá trị duy nhất

Ngoài ra, bạn không chỉ áp dụng cú pháp này cho trường EnglishCountryRegionName, mà bạn còn có thể sử dụng nó cho bất kỳ trường dữ liệu hay bảng nào trong cơ sở dữ liệu để nhìn ra sự thay đổi và biến động của số liệu. Từ đó có thể đưa ra những đánh giá và thống kê có ích cho công việc của bạn.

Xem thêm: Hướng dẫn cách dùng các ký tự đại diện trong MySQL

Kết luận

Trên đây là hướng dẫn về câu lệnh chứa từ khóa DISTINCT trong SQL cực đơn giản cho người mới. Hy vọng nó sẽ hữu ích 

Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.

Đăng ký học thử để trải nghiệm ngay hôm nay!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông