Lấy giá trị trùng lặp trong SQL

Bài viết hôm nay, mình xin hướng dẫn các bạn cách tìm kiếm và xóa dữ liệu trùng lắp trong Sql server. Trong quá trình, làm việc với Sqlserver, không ít lần dữ liệu của các bạn có thể bị trùng lắp (Duplicate), mà những dữ liệu đó không cần thiết, bạn có thể xóa chúng đi để tối ưu hóa database hoặc tính toán dữ liệu được chính xác.

Vậy làm cách nào để có thể tìm kiếm ra những dòng dữ liệu trùng đó, và xóa chúng đi chỉ để lại duy nhất một dòng.

Các ban có thể làm theo hướng dẫn bên dưới, chỉ một vài dòng lệnh T-SQL, có thể giải quyết được vấn đề.

Lấy giá trị trùng lặp trong SQL

Ví dụ: mình có database dữ liệu NORTHWND và bảng table Customer làm ví dụ:

Cấu trúc dữ liệu của bảng Customer:

Lấy giá trị trùng lặp trong SQL

Dưới đây là dữ liệu của bảng Customer.

Lấy giá trị trùng lặp trong SQL

Các bạn có thể thấy dữ liệu ở hình trên cột Country trùng nhau.'

Bây giờ, mình viết câu lệnh đếm xem cộ Country có bao nhiêu dòng dữ liệu bị trùng, và dòng dữ liệu nào trùng sẽ hiển thị lên

select * from Customers
SELECT country , COUNT(country) AS number_record
FROM Customers
GROUP BY Country
HAVING COUNT(country) > 1

- Tiếp theo, mình viết tiếp câu lệnh cho hiển thị đầy đủ những dòng dữ liệu bị Duplicate

SELECT *
FROM Customers
WHERE country IN (
SELECT country
FROM Customers
GROUP BY Country
HAVING COUNT(Country) > 1
)
ORDER BY country

- Câu lệnh xóa dữ liệu trùng nhau, chỉ để lại một Record duy nhất

Đầu tiên, các bạn thêm vào cột Id kiểu int và cho tự động tăng. (indentity = true), để mình lấy dòng nào có id lớn hơn sẽ để lại một dòng, nếu sql vẫn không cho các bạn xóa vì dính tham chiếu khóa, các bạn có thể tắt khóa chính, sau khi chạy xong câu lệnh rồi bật lên lại.

DELETE n1
FROM customers n1, customers n2
WHERE n1.country = n2.country AND n1.id > n2.id

Các bạn có thể download dữ liệu NORTHWND tại link bên dưới

link download

Chúc các bạn thành công. Mọi câu hỏi thắc mắc đến bài viết xin truy cập http://hoidap.laptrinhvb.net để được support.

Lấy giá trị trùng lặp trong SQL

ĐỪNG QUÊN LIKE AND SHARE NHA CÁC BẠN. 

CÁM ƠN CÁC BẠN ĐÃ THEO DÕI.

Tags:

THÔNG TIN TÁC GIẢ

NGUYỄN THẢO

Founder at LaptrinhVB.net

★★★★★

♥ Tình yêu thương chẳng hề hư mất bao giờ. (Cr 13,4)

=========================================================================

My skills includes .NET(C#, VB.NET), DevExpress, Java, Android, PHP,

Python, Sqlserver, Mysql, Reactjs, Dart, Flutter, API services and lot more...

Phone/Zalo/Telegram/WhatsApp: +84.933.913.122

Email: 

Facebook: https://fb.com/Lewandowski28031988

Youtube Channel: https://www.youtube.com/c/CTutorialsTips

Lấy giá trị trùng lặp trong SQL
 

Buy me a cup of beer

Lấy giá trị trùng lặp trong SQL
       
Lấy giá trị trùng lặp trong SQL
Lấy giá trị trùng lặp trong SQL

Lấy giá trị trùng lặp trong SQL

=========================================================================

BÀI VIẾT LIÊN QUAN

Lấy giá trị trùng lặp trong SQL

Đăng bởi: Thảo meo - Lượt xem: 32854 19:33:29, 23/08/2016C#   In bài viết