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é!
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:
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é.
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é.
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 đó:
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.
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.
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:
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é:
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 đó:
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
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.
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
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!