SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các liên kết - KDnuggets

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các liên kết – KDnuggets

Nút nguồn: 2805506

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Khoa học dữ liệu là một lĩnh vực liên ngành chủ yếu dựa vào việc rút ra những hiểu biết sâu sắc và đưa ra quyết định sáng suốt từ lượng dữ liệu khổng lồ. Một trong những công cụ cơ bản trong hộp công cụ của nhà khoa học dữ liệu là SQL (Ngôn ngữ truy vấn có cấu trúc), ngôn ngữ lập trình được thiết kế để quản lý và thao tác cơ sở dữ liệu quan hệ.

Trong bài viết này, tôi sẽ tập trung vào một trong những tính năng mạnh mẽ nhất của SQL: nối.

SQL Joins cho phép bạn kết hợp dữ liệu từ nhiều bảng cơ sở dữ liệu dựa trên các cột chung. Bằng cách đó, bạn có thể hợp nhất thông tin lại với nhau và tạo kết nối có ý nghĩa giữa các tập dữ liệu liên quan.

Có một số các loại kết nối SQL:

  • Tham gia bên trong
  • Kết nối bên ngoài bên trái
  • Tham gia bên ngoài bên phải
  • Tham gia đầy đủ bên ngoài
  • Tham gia chéo

Hãy giải thích từng loại.

Phép nối bên trong chỉ trả về các hàng có sự trùng khớp trong cả hai bảng được nối. Nó kết hợp các hàng từ hai bảng dựa trên khóa hoặc cột chung, loại bỏ các hàng không khớp.

Chúng ta hình dung điều này theo cách sau.
 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Trong SQL, kiểu nối này được thực hiện bằng cách sử dụng từ khóa JOIN hoặc INNER JOIN.

Phép nối ngoài bên trái trả về tất cả các hàng từ bảng bên trái (hoặc bảng đầu tiên) và các hàng khớp từ bảng bên phải (hoặc bảng thứ hai). Nếu không khớp, nó trả về giá trị NULL cho các cột từ bảng bên phải.

Chúng ta có thể hình dung nó như thế này.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Khi muốn sử dụng phép nối này trong SQL, bạn có thể thực hiện điều đó bằng cách sử dụng từ khóa LEFT OUTER JOIN hoặc LEFT JOIN. Đây là một bài viết nói về nối trái vs nối ngoài trái.

Phép nối phải trái ngược với phép nối trái. Nó trả về tất cả các hàng từ bảng bên phải và các hàng phù hợp từ bảng bên trái. Nếu không khớp, nó trả về giá trị NULL cho các cột ở bảng bên trái.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Trong SQL, kiểu nối này được thực hiện bằng cách sử dụng từ khóa RIGHT OUTER JOIN hoặc RIGHT JOIN.

Phép nối ngoài đầy đủ trả về tất cả các hàng từ cả hai bảng, khớp các hàng nếu có thể và điền giá trị NULL cho các hàng không khớp.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Các từ khóa trong SQL cho phép nối này là FULL OUTER JOIN hoặc FULL JOIN.

Kiểu liên kết này kết hợp tất cả các hàng từ một bảng với tất cả các hàng từ bảng thứ hai. Nói cách khác, nó trả về tích Descartes, tức là tất cả các kết hợp có thể có của các hàng của hai bảng.

Đây là hình dung sẽ giúp bạn dễ hiểu hơn.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
Hình ảnh của Tác giả
 

Khi kết nối chéo trong SQL, từ khóa là CROSS JOIN.

Để thực hiện một phép nối trong SQL, bạn cần chỉ định các bảng mà chúng ta muốn nối, các cột được sử dụng để khớp và loại phép nối mà chúng ta muốn thực hiện. Cú pháp cơ bản để nối các bảng trong SQL như sau:

SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

 

Ví dụ này cho thấy cách sử dụng THAM GIA.

Bạn tham chiếu bảng đầu tiên (hoặc bên trái) trong mệnh đề FROM. Sau đó, bạn theo dõi nó bằng JOIN và tham chiếu bảng thứ hai (hoặc bên phải).

Sau đó đến điều kiện nối trong mệnh đề ON. Đây là nơi bạn chỉ định cột nào bạn sẽ sử dụng để nối hai bảng. Thông thường, cột chia sẻ có khóa chính trong một bảng và khóa ngoại trong bảng thứ hai.

Lưu ý: Khóa chính là mã định danh duy nhất cho mỗi bản ghi trong bảng. Khóa ngoại thiết lập liên kết giữa hai bảng, tức là đó là một cột trong bảng thứ hai tham chiếu đến bảng đầu tiên. Chúng tôi sẽ cho bạn thấy trong các ví dụ điều đó có nghĩa là gì.

Nếu bạn muốn sử dụng LEFT JOIN, RIGHT JOIN hoặc FULL JOIN, bạn chỉ cần sử dụng các từ khóa này thay vì THAM GIA – mọi thứ khác trong mã đều giống hệt nhau!

Mọi thứ hơi khác một chút với CROSS JOIN. Về bản chất, nó là nối tất cả các kết hợp của các hàng từ cả hai bảng. Đó là lý do tại sao mệnh đề ON không cần thiết và cú pháp trông như thế này.

SELECT columns
FROM table1
CROSS JOIN table2;

 

Nói cách khác, bạn chỉ cần tham chiếu một bảng trong FROM và bảng thứ hai trong CROSS JOIN.

Ngoài ra, bạn có thể tham chiếu cả hai bảng trong FROM và phân tách chúng bằng dấu phẩy – đây là cách viết tắt của CROSS JOIN.

SELECT columns
FROM table1, table2;

Ngoài ra còn có một cách cụ thể để nối các bảng – nối bảng với chính nó. Điều này còn được gọi là tự tham gia bảng.

Đây không hẳn là một kiểu liên kết riêng biệt, vì bất kỳ kiểu liên kết nào được đề cập trước đó cũng có thể được sử dụng để tự tham gia.

Cú pháp để tự tham gia tương tự như những gì tôi đã chỉ cho bạn trước đó. Sự khác biệt chính là cùng một bảng được tham chiếu trong TỪ và THAM GIA.

SELECT columns
FROM table1 t1
JOIN table1 t2
ON t1.column = t2.column;

 

Ngoài ra, bạn cần đặt cho bảng hai bí danh để phân biệt giữa chúng. Những gì bạn đang làm là nối bảng với chính nó và coi nó là hai bảng.

Tôi chỉ muốn đề cập đến điều này ở đây, nhưng tôi sẽ không đi sâu vào chi tiết. Nếu bạn quan tâm đến việc tự tham gia, vui lòng xem hướng dẫn minh họa này trên tự tham gia SQL.

Đã đến lúc cho bạn thấy mọi thứ tôi đề cập có tác dụng như thế nào trong thực tế. tôi sẽ sử dụng Câu hỏi phỏng vấn SQL THAM GIA từ StrataScratch để giới thiệu từng kiểu tham gia riêng biệt trong SQL.

1. Ví dụ THAM GIA

Câu hỏi này của Microsoft muốn bạn liệt kê từng dự án và tính toán ngân sách của dự án theo nhân viên.

dự án đắt tiền

“Đưa ra danh sách các dự án và nhân viên ánh xạ tới từng dự án, tính theo số tiền ngân sách dự án phân bổ cho từng nhân viên. Đầu ra phải bao gồm tên dự án và ngân sách dự án được làm tròn đến số nguyên gần nhất. Trước tiên, hãy sắp xếp danh sách của bạn theo các dự án có ngân sách trên mỗi nhân viên cao nhất.”

Ngày

Câu hỏi đưa ra hai bảng.

ms_dự án

Tôi: int
title: vecni
ngân sách: int

ms_emp_projects

emp_id: int
dự án_id: int

Bây giờ, id cột trong bảng ms_dự án là khóa chính của bảng. Cột tương tự có thể được tìm thấy trong bảng ms_emp_projects, mặc dù có tên khác: project_id. Đây là khóa ngoại của bảng, tham chiếu đến bảng đầu tiên.

Tôi sẽ sử dụng hai cột này để nối các bảng trong giải pháp của mình.

SELECT title AS project, ROUND((budget/COUNT(emp_id)::FLOAT)::NUMERIC, 0) AS budget_emp_ratio
FROM ms_projects a
JOIN ms_emp_projects b ON a.id = b.project_id
GROUP BY title, budget
ORDER BY budget_emp_ratio DESC;

 

Tôi đã nối hai bảng bằng JOIN. Cái bàn ms_dự án được tham chiếu trong TỪ, trong khi ms_emp_projects được tham chiếu sau THAM GIA. Tôi đã đặt bí danh cho cả hai bảng, cho phép tôi không sử dụng tên dài của bảng sau này.

Bây giờ, tôi cần chỉ định các cột mà tôi muốn nối các bảng trên đó. Tôi đã đề cập đến cột nào là khóa chính trong một bảng và khóa ngoại trong bảng khác, vì vậy tôi sẽ sử dụng chúng ở đây.

Tôi bằng hai cột này vì tôi muốn lấy tất cả dữ liệu có ID dự án giống nhau. Tôi cũng sử dụng bí danh của các bảng ở phía trước mỗi cột.

Bây giờ tôi có quyền truy cập vào dữ liệu trong cả hai bảng, tôi có thể liệt kê các cột trong CHỌN. Cột đầu tiên là tên dự án, cột thứ hai là tính toán.

Phép tính này sử dụng hàm COUNT() để đếm số lượng nhân viên theo từng dự án. Sau đó tôi chia ngân sách của từng dự án cho số lượng nhân viên. Tôi cũng chuyển đổi kết quả thành giá trị thập phân và làm tròn nó thành số thập phân bằng XNUMX.

Đầu ra

Đây là những gì truy vấn trả về.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối

2. Ví dụ THAM GIA TRÁI

Hãy thực hành phép nối này trên Câu hỏi phỏng vấn Airbnb. Nó muốn bạn tìm số lượng đơn đặt hàng, số lượng khách hàng và tổng chi phí đơn hàng cho mỗi thành phố.

Đơn đặt hàng và chi tiết của khách hàng

“Tìm số lượng đơn đặt hàng, số lượng khách hàng và tổng chi phí đơn hàng cho mỗi thành phố. Chỉ bao gồm các thành phố đã thực hiện ít nhất 5 đơn hàng và tính tất cả khách hàng ở mỗi thành phố ngay cả khi họ không đặt hàng.

Xuất ra mỗi phép tính cùng với tên thành phố tương ứng.”

Ngày

Bạn được cung cấp các bảng khách hàng,đơn đặt hàng.

khách hàng

Tôi: int
họ: vecni
họ: vecni
thành phố: vecni
địa chỉ nhà: vecni
số điện thoại: vecni

đơn đặt hàng

Tôi: int
giám sát_id: int
ngày đặt hàng: ngày giờ
order_details: vecni
tổng_order_cost: int

Các cột được chia sẻ là id từ bảng khách hàng và cust_id từ bảng đơn đặt hàng. Tôi sẽ sử dụng các cột này để nối các bảng.

Đây là cách giải quyết câu hỏi này bằng cách sử dụng LEFT JOIN.

SELECT c.city, COUNT(DISTINCT o.id) AS orders_per_city, COUNT(DISTINCT c.id) AS customers_per_city, SUM(o.total_order_cost) AS orders_cost_per_city
FROM customers c
LEFT JOIN orders o ON c.id = o.cust_id
GROUP BY c.city
HAVING COUNT(o.id) >=5;

 

Tôi tham khảo bảng khách hàng trong FROM (đây là bảng bên trái của chúng tôi) và LEFT THAM GIA nó với đơn đặt hàng trên cột ID khách hàng.

Bây giờ tôi có thể chọn thành phố, sử dụng COUNT() để lấy số lượng đơn đặt hàng và khách hàng theo thành phố và sử dụng SUM() để tính tổng chi phí đơn hàng theo thành phố.

Để có được tất cả các tính toán này theo thành phố, tôi nhóm đầu ra theo thành phố.

Có một yêu cầu bổ sung trong câu hỏi: “Chỉ bao gồm các thành phố đã thực hiện ít nhất 5 đơn hàng…” Tôi sử dụng HAVING để chỉ hiển thị các thành phố có năm đơn hàng trở lên để đạt được điều đó.

Câu hỏi đặt ra là tại sao tôi lại sử dụng LEFT JOIN và không THAM GIA? Manh mối nằm ở câu hỏi: “…và đếm tất cả khách hàng ở mỗi thành phố ngay cả khi họ không đặt hàng.” Có thể không phải tất cả khách hàng đều đã đặt hàng. Điều này có nghĩa là tôi muốn hiển thị tất cả khách hàng từ bảng khách hàng, hoàn toàn phù hợp với định nghĩa của LEFT JOIN.

Nếu tôi sử dụng THAM GIA, kết quả sẽ sai vì tôi đã bỏ lỡ những khách hàng không đặt hàng.

Lưu ý: Độ phức tạp của các phép nối trong SQL không được phản ánh trong cú pháp mà trong ngữ nghĩa của chúng! Như bạn đã thấy, mỗi phép nối được viết theo cùng một cách, chỉ có từ khóa thay đổi. Tuy nhiên, mỗi phép nối hoạt động khác nhau và do đó có thể đưa ra các kết quả khác nhau tùy thuộc vào dữ liệu. Do đó, điều quan trọng là bạn phải hiểu đầy đủ chức năng của mỗi phép nối và chọn một phép nối sẽ trả về chính xác những gì bạn muốn!

Đầu ra

Bây giờ, chúng ta hãy nhìn vào đầu ra.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối

3. Ví dụ về QUYỀN THAM GIA

RIGHT JOIN là hình ảnh phản chiếu của LEFT JOIN. Đó là lý do tại sao tôi có thể dễ dàng giải quyết vấn đề trước đó bằng cách sử dụng RIGHT JOIN. Hãy để tôi chỉ cho bạn cách làm điều đó.

Ngày

Các bảng vẫn giữ nguyên; Tôi sẽ chỉ sử dụng một kiểu tham gia khác.

SELECT c.city, COUNT(DISTINCT o.id) AS orders_per_city, COUNT(DISTINCT c.id) AS customers_per_city, SUM(o.total_order_cost) AS orders_cost_per_city
FROM orders o
RIGHT JOIN customers c ON o.cust_id = c.id GROUP BY c.city
HAVING COUNT(o.id) >=5;

 

Đây là những gì đã thay đổi. Khi tôi đang sử dụng RIGHT JOIN, tôi đã chuyển đổi thứ tự của các bảng. Bây giờ cái bàn đơn đặt hàng trở thành cái bên trái và cái bàn khách hàng cái đúng. Điều kiện tham gia vẫn giữ nguyên. Mình chỉ đổi thứ tự các cột để phản ánh thứ tự của các bảng thôi, nhưng không cần thiết phải làm như vậy.

Bằng cách chuyển đổi thứ tự của các bảng và sử dụng RIGHT JOIN, một lần nữa tôi sẽ xuất ra tất cả khách hàng, ngay cả khi họ chưa đặt bất kỳ đơn hàng nào.

Phần còn lại của truy vấn giống như trong ví dụ trước. Điều tương tự cũng xảy ra với đầu ra.

Lưu ý: Trong thực tế, THAM GIA ĐÚNG tương đối hiếm khi được sử dụng. LEFT JOIN có vẻ tự nhiên hơn đối với người dùng SQL, vì vậy họ sử dụng nó thường xuyên hơn. Bất cứ điều gì có thể được thực hiện với RIGHT JOIN cũng có thể được thực hiện với LEFT JOIN. Do đó, không có tình huống cụ thể nào mà RIGHT JOIN có thể được ưu tiên hơn.

Đầu ra

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối

4. Ví dụ THAM GIA ĐẦY ĐỦ

Câu hỏi của Salesforce và Tesla muốn bạn đếm sự khác biệt ròng giữa số lượng sản phẩm các công ty tung ra vào năm 2020 với số lượng sản phẩm các công ty tung ra trong năm trước.

Sản phẩm mới

“Bạn được cung cấp một bảng giới thiệu sản phẩm của công ty theo năm. Viết truy vấn để đếm chênh lệch ròng giữa số lượng sản phẩm công ty tung ra trong năm 2020 với số lượng sản phẩm công ty tung ra trong năm trước. Ghi tên của các công ty và chênh lệch ròng của sản phẩm ròng được phát hành trong năm 2020 so với năm trước.”

Ngày

Câu hỏi cung cấp một bảng với các cột sau.

xe_ra mắt

năm: int
Tên công ty: vecni
tên sản phẩm: vecni

Làm thế quái nào tôi có thể tham gia các bàn khi chỉ có một bàn? Ừm, chúng ta cũng cùng xem nhé!

Truy vấn này phức tạp hơn một chút nên tôi sẽ tiết lộ dần dần.

SELECT company_name, product_name AS brand_2020
FROM car_launches
WHERE YEAR = 2020;

 

Câu lệnh SELECT đầu tiên tìm thấy công ty và tên sản phẩm vào năm 2020. Truy vấn này sau đó sẽ được chuyển thành truy vấn phụ.

Câu hỏi muốn bạn tìm ra sự khác biệt giữa năm 2020 và 2019. Vậy hãy viết truy vấn tương tự nhưng dành cho năm 2019.

SELECT company_name, product_name AS brand_2019
FROM car_launches
WHERE YEAR = 2019;

 

Bây giờ tôi sẽ biến các truy vấn này thành các truy vấn phụ và kết hợp chúng bằng cách sử dụng FULL OUTER JOIN.

SELECT *
FROM (SELECT company_name, product_name AS brand_2020 FROM car_launches WHERE YEAR = 2020) a
FULL OUTER JOIN (SELECT company_name, product_name AS brand_2019 FROM car_launches WHERE YEAR = 2019) b ON a.company_name = b.company_name;

 

Các truy vấn con có thể được coi là bảng và do đó có thể được nối với nhau. Tôi đã đặt bí danh cho truy vấn con đầu tiên và đặt nó trong mệnh đề FROM. Sau đó, tôi sử dụng FULL OUTER JOIN để kết hợp nó với truy vấn con thứ hai trên cột tên công ty.

Bằng cách sử dụng kiểu kết nối SQL này, tôi sẽ hợp nhất tất cả các công ty và sản phẩm vào năm 2020 với tất cả các công ty và sản phẩm vào năm 2019.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối
 

Bây giờ tôi có thể hoàn tất truy vấn của mình. Hãy chọn tên công ty. Ngoài ra, mình sẽ sử dụng hàm COUNT() để tìm số lượng sản phẩm tung ra trong mỗi năm rồi trừ đi để có chênh lệch. Cuối cùng, tôi sẽ nhóm đầu ra theo công ty và sắp xếp nó theo công ty theo thứ tự bảng chữ cái.

Đây là toàn bộ truy vấn.

SELECT a.company_name, (COUNT(DISTINCT a.brand_2020)-COUNT(DISTINCT b.brand_2019)) AS net_products
FROM (SELECT company_name, product_name AS brand_2020 FROM car_launches WHERE YEAR = 2020) a
FULL OUTER JOIN (SELECT company_name, product_name AS brand_2019 FROM car_launches WHERE YEAR = 2019) b ON a.company_name = b.company_name
GROUP BY a.company_name
ORDER BY company_name;

Đầu ra

Dưới đây là danh sách các công ty và sự khác biệt về sản phẩm ra mắt giữa năm 2020 và 2019.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối

5. Ví dụ THAM GIA CHÉO

Câu hỏi này của Deloitte thật tuyệt vời khi cho thấy cách hoạt động của CROSS JOIN.

Tối đa hai số

“Cho một cột số, hãy xem xét tất cả các hoán vị có thể có của hai số giả sử rằng các cặp số (x,y) và (y,x) là hai hoán vị khác nhau. Sau đó, với mỗi hoán vị, hãy tìm giá trị lớn nhất của hai số đó.

Xuất ra ba cột: số thứ nhất, số thứ hai và số lớn nhất của hai cột.”

Câu hỏi muốn bạn tìm tất cả các hoán vị có thể có của hai số giả sử rằng các cặp số (x,y) và (y,x) là hai hoán vị khác nhau. Sau đó, chúng ta cần tìm số lớn nhất cho mỗi hoán vị.

Ngày

Câu hỏi cho chúng ta một bảng có một cột.

deloitte_numbers

con số: int

Mã này là một ví dụ về CROSS THAM GIA, nhưng cũng là một ví dụ về tự tham gia.

SELECT dn1.number AS number1, dn2.number AS number2, CASE WHEN dn1.number > dn2.number THEN dn1.number ELSE dn2.number END AS max_number
FROM deloitte_numbers AS dn1
CROSS JOIN deloitte_numbers AS dn2;

 

Tôi tham chiếu bảng trong FROM và đặt cho nó một bí danh. Sau đó, tôi CROSS JOIN với chính nó bằng cách tham chiếu nó sau CROSS JOIN và đặt cho bảng một bí danh khác.

Bây giờ có thể sử dụng một bảng vì chúng là hai bảng. Tôi chọn số cột từ mỗi bảng. Sau đó, tôi sử dụng câu lệnh CASE để đặt điều kiện hiển thị số lớn nhất của hai số.

Tại sao CROSS JOIN được sử dụng ở đây? Hãy nhớ rằng, đây là một kiểu nối SQL sẽ hiển thị tất cả các kết hợp của tất cả các hàng từ tất cả các bảng. Đó chính xác là những gì câu hỏi đang hỏi!

Đầu ra

Đây là ảnh chụp nhanh của tất cả các kết hợp và số lượng cao hơn của cả hai.

 

SQL dành cho khoa học dữ liệu: Hiểu và tận dụng các phép nối

Bây giờ bạn đã biết cách sử dụng các phép nối SQL, câu hỏi đặt ra là làm thế nào để sử dụng kiến ​​thức đó trong khoa học dữ liệu.

SQL Join đóng một vai trò quan trọng trong các tác vụ khoa học dữ liệu như khám phá dữ liệu, làm sạch dữ liệu và kỹ thuật tính năng.

Dưới đây là một vài ví dụ về cách tận dụng các phép nối SQL:

  1. Kết hợp dữ liệu: Việc kết hợp các bảng cho phép bạn tập hợp các nguồn dữ liệu khác nhau, cho phép bạn phân tích các mối quan hệ và mối tương quan trên nhiều bộ dữ liệu. Ví dụ: việc kết hợp bảng khách hàng với bảng giao dịch có thể cung cấp thông tin chi tiết về hành vi của khách hàng và mô hình mua hàng.
  1. Xác nhận dữ liệu: Các phép nối có thể được sử dụng để xác thực chất lượng và tính toàn vẹn của dữ liệu. Bằng cách so sánh dữ liệu từ các bảng khác nhau, bạn có thể xác định sự không nhất quán, giá trị bị thiếu hoặc giá trị ngoại lệ. Điều này giúp bạn làm sạch dữ liệu và đảm bảo rằng dữ liệu được sử dụng để phân tích là chính xác và đáng tin cậy.
  1. Kỹ thuật tính năng: Các phép nối có thể là công cụ tạo ra các tính năng mới cho các mô hình học máy. Bằng cách hợp nhất các bảng có liên quan, bạn có thể trích xuất thông tin có ý nghĩa và tạo các tính năng nắm bắt các mối quan hệ quan trọng trong dữ liệu. Điều này có thể nâng cao khả năng dự đoán của các mô hình của bạn.
  1. Tổng hợp và phân tích: Các phép nối cho phép bạn thực hiện các phép tổng hợp và phân tích phức tạp trên nhiều bảng. Bằng cách kết hợp dữ liệu từ nhiều nguồn khác nhau, bạn có thể có được cái nhìn toàn diện về dữ liệu và rút ra những hiểu biết có giá trị. Ví dụ: việc kết hợp bảng bán hàng với bảng sản phẩm có thể giúp bạn phân tích hiệu suất bán hàng theo danh mục sản phẩm hoặc khu vực.

Như tôi đã đề cập, độ phức tạp của các phép nối không thể hiện trong cú pháp của chúng. Bạn đã thấy cú pháp đó tương đối đơn giản.

Các phương pháp thực hành tốt nhất cho các phép nối cũng phản ánh điều đó, vì chúng không quan tâm đến bản thân việc mã hóa mà quan tâm đến việc kết nối làm gì và nó hoạt động như thế nào.

Để tận dụng tối đa các phép nối trong SQL, hãy xem xét các phương pháp hay nhất sau đây.

  1. Hiểu dữ liệu của bạn: Làm quen với cấu trúc và mối quan hệ trong dữ liệu của bạn. Điều này sẽ giúp bạn chọn kiểu nối phù hợp và chọn đúng cột để khớp.
  1. Sử dụng chỉ mục: Nếu các bảng của bạn lớn hoặc thường xuyên được nối, hãy cân nhắc việc thêm chỉ mục trên các cột được sử dụng để nối. Các chỉ mục có thể cải thiện đáng kể hiệu suất truy vấn.
  1. Hãy chú ý đến hiệu suất: Việc nối các bảng lớn hoặc nhiều bảng có thể tốn kém về mặt tính toán. Tối ưu hóa các truy vấn của bạn bằng cách lọc dữ liệu, sử dụng các kiểu kết hợp thích hợp và xem xét việc sử dụng các bảng hoặc truy vấn phụ tạm thời.
  1. Kiểm tra và xác nhận: Luôn xác thực kết quả tham gia của bạn để đảm bảo tính chính xác. Thực hiện kiểm tra độ chính xác và xác minh rằng dữ liệu đã kết hợp phù hợp với mong đợi và logic kinh doanh của bạn.

SQL Joins là một khái niệm cơ bản trao quyền cho bạn với tư cách là nhà khoa học dữ liệu để hợp nhất và phân tích dữ liệu từ nhiều nguồn. Bằng cách hiểu các loại kết nối SQL khác nhau, nắm vững cú pháp của chúng và tận dụng chúng một cách hiệu quả, các nhà khoa học dữ liệu có thể khám phá những hiểu biết sâu sắc có giá trị, xác thực chất lượng dữ liệu và thúc đẩy việc ra quyết định dựa trên dữ liệu.

Tôi đã chỉ cho bạn cách thực hiện trong năm ví dụ. Bây giờ, việc khai thác sức mạnh của SQL và tham gia vào các dự án khoa học dữ liệu của bạn nhằm đạt được kết quả tốt hơn là tùy thuộc vào bạn.
 
 
Nate Rosidi là một nhà khoa học dữ liệu và trong chiến lược sản phẩm. Anh ấy cũng là một giáo sư trợ giảng dạy phân tích và là người sáng lập StrataScratch, một nền tảng giúp các nhà khoa học dữ liệu chuẩn bị cho cuộc phỏng vấn của họ với các câu hỏi phỏng vấn thực tế từ các công ty hàng đầu. Kết nối với anh ấy trên Twitter: StrataScratch or LinkedIn.
 

Dấu thời gian:

Thêm từ Xe đẩy