Câu hỏi phỏng vấn SQL
Câu hỏi

Tìm các giá trị trùng lặp trong bảng SQL

Câu trả lời

Để tìm các giá trị trùng lặp trong một bảng SQL, bạn có thể sử dụng câu lệnh SQL kết hợp với các từ khóa GROUP BYHAVING. Dưới đây là một số cách thực hiện:

  1. Tìm giá trị trùng lặp trong một cột:
    Bạn có thể nhóm các bản ghi theo cột mà bạn muốn kiểm tra giá trị trùng lặp và sử dụng hàm COUNT() để đếm số lượng. Sau đó, sử dụng HAVING để lọc ra những nhóm có số lượng lớn hơn 1, điều này chỉ ra rằng có sự trùng lặp.
SELECT column_name, COUNT(column_name) 
FROM table_name 
GROUP BY column_name 
HAVING COUNT(column_name) > 1;
  1. Tìm giá trị trùng lặp dựa trên nhiều cột:
    Nếu bạn muốn tìm các bản ghi trùng lặp dựa trên sự kết hợp của nhiều cột, bạn chỉ cần thêm các cột đó vào phần GROUP BY.
SELECT column1, column2, COUNT(*)
FROM table_name
GROUP BY column1, column2
HAVING COUNT(*) > 1;
  1. Lấy toàn bộ thông tin của các bản ghi trùng lặp:
    Nếu bạn muốn lấy toàn bộ thông tin của các bản ghi trùng lặp, không chỉ là các cột bạn đã nhóm, bạn có thể sử dụng một truy vấn con với JOIN.
SELECT a.*
FROM table_name a
JOIN (
    SELECT column1, column2
    FROM table_name
    GROUP BY column1, column2
    HAVING COUNT(*) > 1
) b ON a.column1 = b.column1 AND a.column2 = b.column2;

Những phương pháp trên sẽ giúp bạn xác định các giá trị trùng lặp trong bảng SQL của mình.

Citations:
[1] https://www.sqlshack.com/finding-duplicates-in-sql/
[2] https://www.geeksforgeeks.org/how-to-find-duplicate-records-that-meet-certain-conditi...

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Làm thế nào để chọn 5 bản ghi đầu tiên từ một bảng?

middle

Sự khác biệt giữa INNER JOIN, OUTER JOIN, FULL OUTER JOIN trong SQL là gì?

senior

Cái nào nhanh hơn, một truy vấn lớn hay nhiều truy vấn nhỏ trong sql?

Bình luận

Chưa có bình luận nào