Tự học Data Analyst: Tổng hợp chuỗi bài SQL 101 trong Data Analysis

Nội dung

Trong bài viết này, chúng ta sẽ tổng hợp các bài viết thành một xâu chuỗi về việc ứng dụng SQL trong Data Analysis, cũng là chuỗi đầu tiên trong các chuỗi bài giúp bạn tự học data analyst.

Note: dù đây là lần đầu hay lần thứ n bạn xem bài viết tại vndataproduct.org. Thì mình cũng xin cám ơn các bạn đã tin tưởng và dành thời gian đọc những bài viết này, thông qua đó mình hy vọng các bạn có thể thu nhận một vài kiến thức hữu dụng.

Chuẩn bị

Data Analysis với SQL – Phần 1: Mở đầu

Ở bài này, chúng ta sẽ khởi tạo cơ sở dữ liệu PostgreSQL, và sử dụng bộ dataset để chuẩn bị cho việc học và thực hành.

Cơ bản

SQL trong Data Analysis: Nhập môn SQL cơ bản

Nhập môn cơ bản SQL cho dân data. Dường như mỗi ngày, các vị trí làm data phải dùng phần lớn thời gian vào việc sử dụng SQL để truy vấn, tìm hiểu và chỉnh sửa dữ liệu. Bài viết này sẽ là một bài viết không thể thiếu với các bạn.

Các kiểu dữ liệu cơ bản trong PostgreSQL

Sau khi chúng ta làm quen với một số câu lệnh đơn giản trong SQL. Tiếp theo, chúng ta sẽ cần học qua các kiểu dữ liệu cơ bản trong PostgreSQL.

Các hàm tổng hợp dữ liệu (Aggregation Function)

Ở bài này chúng ta sẽ làm quen các hàm tổng hợp dữ liệu. Ví dụ chúng ta cần tính tổng doanh thu theo tháng, hay giá trị trung bình đơn hàng. Đây cũng là một trong những thao tác thường ngày của một vị trí Data Analyst.

Cơ bản về Window Functions

Được xếp vào nhóm bài nâng cao. Các hàm trong Window Functions giúp chúng ta tính toán các chỉ số theo nhóm. Ví dụ chúng ta muốn tính chỉ số trung bình đơn hàng theo từng danh mục hàng hoá. Chúng ta có thể tính từng danh mục một, nhưng như vậy sẽ rất lâu. Vậy Window Functions sẽ giúp các bạn cho các vấn đề tương tự như thế này.

Window Functions nâng cao – Phần 01

Tiếp tục nhóm bài về Windows Functions, ở bài này chúng ta sẽ đi sâu về các hàm khác. Bao gồm:

ROW_NUMBER
RANK/DENSE_RANK/PERCENT_RANK
FIRST_VALUE và LAST_VALUE
LAG và LEAD

Sử dụng CTE (Common Table Expression)

Trong thực tế, chúng ta phải viết khá nhiều câu truy vấn lồng nhau chỉ để giải quyết một vấn đề. Một đoạn truy vấn lên tới 1000 dòng cũng không phải là không được. Tuy nhiên, sẽ có các truy vấn lặp lại, vì vậy với CTE sẽ giúp chúng ta tái sử dụng các truy vấn lặp lại đó một cách hiệu quả.

Một số hàm thường dùng trong Postgresql

Trong thực tế, bạn sẽ cần phải xử lý dữ liệu ở trong cách trường hợp sau: xử lý chuỗi, xử lý số thực, xử lý ngày & giờ, làm sạch dữ liệu v.v Thì mới bước được tới giai đoạn Data Analysis. Bài viết này sẽ giúp bạn làm quen các hàm thường dùng đó. Lưu ý: đây cũng là một chương trong chuỗi học Data Analysis, bạn nhớ học nhé.

Nâng cao

Window Functions nâng cao – Phần 02

Bài viết kết thúc nhóm bài Window Functions. Chủ yếu ở bài này sẽ là phần cộng thêm nâng cao của Window Functions, trong thực tế cũng ít khi có trường hợp sử dụng. Tuy nhiên, bạn cũng nên học qua để trong một số trường hợp ít đó, thì vẫn có giải pháp.

Thực hành ứng dụng đệ quy (Recursive)

Trong thế giới của cơ sở dữ liệu quan hệ, các truy vấn đệ quy (recursive) đóng vai trò quan trọng trong việc giải quyết các vấn đề phức tạp, mà các câu truy vấn không thể giải quyết được. Ví dụ, chúng ta có dữ liệu phân cấp như nhân viên – trưởng nhóm – quản lý v.v. Việc truy vấn nhiều cấp đòi hỏi sẽ trở nên phức tạp khi có nhiều câu hỏi cho một câu truy vấn.

Procedure và Function – Giải thích và ứng dụng

Procedure và Function là hai thành phần quan trọng trong PostgreSQL, cho phép chúng ta thực hiện các tác vụ phức tạp và có thể tái sử dụng truy vấn trong cơ sở dữ liệu của chúng ta.

Bài tập

Tự học Data Analyst: Tổng hợp chuỗi bài SQL 101 trong Data Analysis

Kiến thức phải đi đôi với thực hành. Dưới đây là phần bài tập, nó cũng sẽ gần gần giống với thực tế. Giả sử bạn là một Data Analyst, hệ thống bao gồm Postgresql làm DataWarehouse và file dữ liệu được export ra từ hệ thống bởi đội IT (xem bài chuẩn bị). Sếp của bạn giao cho bạn cần xuất file báo cáo như sau:

  • Tính doanh thu, số lượng khách hàng, số lượng đơn hàng, số lượng sản phẩm được bán ra mỗi tuần, tháng, quý, năm.
  • Tính giá trị trung bình đơn hàng (Avg. Order Value), lấy từ order_item.price. Tính trung bình số lượng sản phẩm giỏ hàng (Avg. Basket Size), lấy số lượng item thuộc về mỗi đơn hàng, và tính trung bình.
  • Xếp hạng Avg.Order Value và Avg. Basket Size theo danh mục mỗi tháng, mỗi quý, mỗi năm. Tên danh mục phải lấy theo tên tiếng Anh (xem bảng product_category_name_translation).
  • Tính SLA (Service Level Agreement), từ khi khách hàng đặt hàng tới khi nhận hàng ở mỗi công đoạn: nhận đơn -> duyệt đơn -> chờ giao -> giao thành công.
  • Tính % đơn hoàn thành đơn trước cam kết: trong bảng order có cột estimated_delivery_date, đem đi so sánh với ngày được giao. Tính số lượng đơn hàng trượt thời gian cam kết. Nếu có số lượng đơn trượt cam kết, hãy tính toán công đoạn nào ảnh hưởng tới thời gian cam kết nhất.
  • Xếp hạng sellers (nhà cung cấp) theo % đơn hàng, và % doanh thu. Sắp xếp các sellers có tỉ lệ tăng trưởng về % đơn hàng và % doanh thu theo quý và theo năm. Nếu có các sellers có tỉ lệ tăng trưởng giảm về % đơn hàng và % doanh thu, hãy chỉ ra.

Tổng kết

Sau chuỗi bài này, mình hy vọng các bạn có thể nắm vững những khái niệm và kỹ năng cần thiết để thao tác và truy vấn dữ liệu hiệu quả với SQL. Nó đồng thời còn là 1 trong các công cụ quan trọng nhất cho một Data Analyst, ngang với Excels và trên cả Python.

Và nó cũng là hành trang đầu tiên trong sự nghiệp Data. Ở các chuỗi bài tiếp theo chúng ta sẽ đi sâu vào nền tảng khoa học dữ liệu, thông qua việc chúng ta đã nắm sơ bộ về SQL sẽ giúp các bạn tiếp thu nhanh hơn kiến thức cho chuỗi bài đó.

Xin cám ơn cũng như chúc mừng các bạn đã dành thời gian để đọc, học và thực nghiệm các kiến thức SQL ở trên. Hy vọng chúng ta sẽ tiếp tục đồng hành với các chuỗi bài tiếp theo.

Đôi điều cho các bạn tự học Data Analyst

Tự học, rất khó. Tuy nhiên, có những tiêu chí sau đây sẽ giúp bạn bớt khó một chút. Hy vọng bạn cố gắng nhớ các tiêu chí này mỗi ngày. Chính sự kỷ luật mới giúp bạn đi xa được.

  • Xác định mục tiêu: hãy xác định mục tiêu. Bạn có thể muốn học để làm việc trong một công ty, hoặc bạn muốn phát triển thêm kỹ năng phân tích dữ liệu để sử dụng trong các dự án cá nhân hoặc công ty hiện tại. Xác định mục tiêu sẽ giúp bạn tập trung vào học những kỹ năng cần thiết.
  • Học hiểu rõ và tường tận: đừng cưỡi ngựa xem hoa. Trong ngành này, kiến thức nền tảng rất quan trọng. Nếu bạn chỉ chạy theo công cụ thì đến cuối cùng vẫn không hiểu rõ được bản chất dữ liệu là gì và nên dùng nó như thế nào.
  • Tư duy Agile: là một kiểu tư duy trong đó đề cao quá trình học hỏi, cộng tác, trao dồi và nâng cấp bản thân lên mỗi ngày. Hôm nay bạn có thể học một, nhưng ngày mai phải bạn phải đi hơn một.
  • Thực hành với dữ liệu thực tế: có dữ liệu công khai từ các nguồn như Kaggle, HuggingFace, hoặc dữ liệu từ các dự án mã nguồn mở. Thực hành phân tích dữ liệu với những tập dữ liệu này để áp dụng những kiến thức đã học và rèn luyện kỹ năng.

Tự học Data Analyst không chỉ giúp bạn phát triển kỹ năng phân tích dữ liệu mà còn mở ra cơ hội rộng lớn trong lĩnh vực này. Điều quan trọng là kiên trì, học hỏi và luôn đam mê với những gì bạn đang làm. Chúc bạn thành công trong việc tự học Data Analyst!

Bài viết liên quan

SQL trong Data Analysis: Procedure và Function – 2 công cụ không thể thiếu

Xin chào các bạn đã quay trở lại chuỗi bài SQL trong Data Analysis...

SQL trong Data Analysis: Hiểu rõ và ứng dụng đệ quy (Recursive trong PostgreSQL)

Trong thế giới của cơ sở dữ liệu quan hệ, các truy vấn đệ...

[Phân Tích Dữ Liệu Với Python] Tập 1: Làm Quen Với Pandas

Trong thời đại tiến bộ của khoa học dữ liệu, khả năng phân tích...

SQL trong Data Analysis: Các kiểu dữ liệu cơ bản trong PostgreSQL

Chào mừng các bạn đã quay lại chuỗi bài viết SQL trong Data Analysis....
spot_img