Làm cách nào để truy xuất cả ba hàng riêng biệt trong một bảng?
TÓM LƯỢC. Bài viết này xem xét các phương pháp để chọn các giá trị riêng biệt từ kết quả truy vấn trong PostgreSQL. Các từ khóa và mệnh đề được thảo luận với các ví dụ bao gồm Show 1. RIÊNG BIỆT 2. KHÁC BIỆT TRÊN 3. NHÓM THEO 4. ĐANG CÓ 5. Một số lưu ý
Trong bài đăng này, chúng ta sẽ xem cách chọn các giá trị riêng biệt từ các truy vấn/câu lệnh SQL. Một trong những cách dễ nhất để chọn các giá trị riêng biệt là sử dụng từ khóa DISTINCT. Hãy cùng khám phá từ khóa này trước
RIÊNG BIỆTDISTINCT được sử dụng để xóa các hàng trùng lặp khỏi truy vấn CHỌN và chỉ hiển thị một hàng duy nhất từ tập hợp kết quả. ví dụHãy thiết lập một bảng mới trong PostgreSQL và sử dụng nó để xem xét một số cách hữu ích mà DISTINCT có thể loại bỏ các bản sao và tiết lộ thông tin hữu ích từ dữ liệu Đầu tiên, kết nối với thiết bị đầu cuối psql.
Tạo một bảng, “kiểm tra”.
--Chèn một vài bản ghi vào bảng “kiểm tra”
Sử dụng truy vấn CHỌN để xem các hàng của bảng “kiểm tra”
Bây giờ bảng đã được thiết lập, hãy xem xét một vài cách mà DISTINCT có thể sắp xếp dữ liệu 1. Bạn có thể sử dụng CHỌN với DISTINCT để chỉ tìm các giá trị không trùng lặp từ cột “col1”.
2. CHỌN với DISTINCT cũng có thể được sử dụng trong truy vấn nội tuyến SQL.
3. DISTINCT cũng có thể được sử dụng với COUNT và các tập hợp khác
4. Bạn có thể sử dụng CHỌN với DISTINCT trên hai cột của bảng.
5. Bạn cũng có thể sử dụng CHỌN với DISTINCT trên tất cả các cột của bảng. ________số 8
Lưu ý ở đây rằng tất cả các hàng đã được hiển thị, bao gồm cả các hàng trùng lặp, vì không có hàng riêng biệt nào trong cột “col3” Một biến thể của DISTINCT là DISTINCT ON. bây giờ Hãy cùng khám phá điều này
KHÁC BIỆT TRÊN When distinct cannot return unique row when all columns combination is not unique then we can use distinct on clause which will give first row from that set of duplicate rows.The column which we are specifying in DISTINCT ON Ví dụBạn có thể sử dụng DISTINCT ON để hiển thị giá trị đầu tiên của mỗi giá trị trong “col1”
Hãy cẩn thậnCó một vài trường hợp không thể sử dụng từ khóa riêng biệt 1. DISTINCT là một từ khóa dành riêng trong PostgreSQL, vì vậy chúng tôi không thể chỉ định nó làm tên đối tượng. 0
2. Trong một truy vấn CHỌN, chúng ta không thể có nhiều hơn một từ khóa DISTINCT 1
3. Chúng tôi cũng không thể sử dụng nó trong các điều kiện WHERE và GROUP BY. 2
hoặc 3
4. FOR NO KEY UPDATE, FOR UPDATE, FOR SHARE và FOR KEY SHARE không thể được chỉ định với DISTINCT 4
Một cách phổ biến khác để chọn các giá trị không trùng lặp là sử dụng mệnh đề GROUP BY với HAVING
NHÓM THEO và CÓVới GROUP BY và HAVING, bạn có thể chọn các giá trị riêng biệt dựa trên nhóm cột. Trường hợp có thể được sử dụng để tìm các giá trị trùng lặp Nhóm khôn ngoan về chức năng và riêng biệt hoạt động tương tự nhưng nhóm theo cũng cung cấp tính linh hoạt để sử dụng các chức năng tổng hợp cùng với việc nhận dữ liệu duy nhất. Hiệu suất khôn ngoan cũng nhóm theo tốt hơn so với khác biệt Làm cách nào tôi có thể nhận được 3 bản ghi bảng trong SQL?Để làm như vậy, chúng ta cần sử dụng truy vấn nối để lấy dữ liệu từ nhiều bảng. . CHỌN p. p_id, p. cus_id, p. p_name, c1. tên1, c2. tên2 TỪ sản phẩm NHƯ p TRÁI THAM GIA khách hàng1 NHƯ c1 Trên P. cus_id=c1. cus_id TRÁI THAM GIA khách hàng2 NHƯ c2 Trên P. cus_id = c2. cus_id Làm cách nào để CHỌN các bản ghi duy nhất từ một bảng mà không sử dụng riêng biệt?Dưới đây là các giải pháp thay thế. . Xóa các bản sao bằng Row_Number. VỚI CTE (Col1, Col2, Col3, DuplicateCount) AS ( SELECT Col1, Col2, Col3, ROW_NUMBER() OVER(PHẦN THAO BỞI Col1, Col2, Col3 ĐẶT HÀNG THEO Col1) NHƯ DuplicateCount TỪ MyTable ) CHỌN * từ CTE Trong đó DuplicateCount = 1 Loại bỏ các bản sao bằng cách sử dụng nhóm By Làm cách nào để tìm các bản ghi duy nhất từ hai bảng trong SQL?Lệnh DISTINCT trong SQL thu thập các bản ghi duy nhất hoặc riêng biệt từ một trường của bảng . Trong bảng sinh viên, chúng ta muốn biết có bao nhiêu bản ghi lớp và lệnh sql DISTINCT chỉ trả về lớp một lần. |