Giải Case Study cùng SQL: Dữ liệu ngân hàng

Tiếp nối với case study ở phần 1, hãy cùng UniTrain khám phá một case study mới với lĩnh vực ngân hàng nhé! 

Tình huống: 

Một làn sóng đổi mới đang diễn ra trong lĩnh vực tài chính với sự ra đời của Ngân hàng Neo – các ngân hàng kỹ thuật số hoàn toàn mới. Danny đã nảy ra ý tưởng kết hợp giữa Ngân hàng Neo, tiền điện tử với thế giới dữ liệu. Và thế là Data Bank ra đời! 

Data Bank hoạt động giống như bất kỳ Ngân hàng kỹ thuật số nào khác, nhưng không chỉ dừng lại ở các hoạt động ngân hàng truyền thống. Data Bank còn cung cấp nền tảng lưu trữ dữ liệu phân tán, với mức độ bảo mật hàng đầu thế giới! 

Câu hỏi:  

  1. Mỗi loại giao dịch đã được sử dụng bao nhiêu lần và với tổng số tiền được giao dịch là bao nhiêu?
  2. Giá trị trung bình của số lần gửi tiền và số tiền được gửi của mỗi khách hàng là bao nhiêu? 
  3. Đối với mỗi tháng, có bao nhiêu khách hàng của Data Bank thực hiện nhiều hơn 1 giao dịch gửi tiền và đồng thời thực hiện ít nhất 1 giao dịch mua hoặc rút tiền trong cùng tháng đó?

Bạn có thể thực hành với bộ dữ liệu tại: https://8weeksqlchallenge.com/case-study-4/ 

1. Mỗi hình thức giao dịch đã được sử dụng bao nhiêu lần và với tổng số tiền được giao dịch là bao nhiêu?

Chúng ta sẽ tính số lượng (count) duy nhất và tổng số tiền (sum) theo từng loại giao dịch (txn_type) của khách hàng.  

WITH customer_transactions AS( 

SELECT * FROM data_bank.customer_transactions) 

SELECT  

txn_type, 

COUNT(*) AS unique_count, 

SUM(txn_amount) AS total_amount 

FROM customer_transactions 

GROUP BY txn_type; 

Sqlcase21

2. Giá trị trung bình của số lần gửi tiền và số tiền được gửi của mỗi khách hàng là bao nhiêu?

Bước 1: Tạo bảng tạm thời ‘customerDeposit’: 

– Lọc lấy các giao dịch ‘deposit’ từ bảng ‘customer_transactions’. 

– Đối với mỗi khách hàng, tính toán tổng số lần gửi tiền và tổng số tiền gửi. 

Bước 2: Tính toán các giá trị trung bình: 

– Tính trung bình số lần gửi tiền của tất cả khách hàng trong bảng ‘customerDeposit’, lưu kết quả vào cột ‘avg_dep_count’. 

– Tính trung bình số tiền gửi của tất cả khách hàng trong bảng ‘customerDeposit’, lưu kết quả vào cột ‘avg_dep_amount’. 

WITH customerDeposit AS ( 

SELECT  

customer_id, 

txn_type, 

COUNT(*) AS dep_count, 

SUM(txn_amount) AS dep_amount 

FROM data_bank.customer_transactions 

WHERE txn_type = ‘deposit’ 

GROUP BY customer_id, txn_type 

 
SELECT 

AVG(dep_count) AS avg_dep_count, 

AVG(dep_amount) AS avg_dep_amount 

FROM customerDeposit; 

Sqlcase22

3. Đối với mỗi tháng, có bao nhiêu khách hàng của Data Bank thực hiện nhiều hơn 1 giao dịch gửi tiền và đồng thời thực hiện ít nhất 1 giao dịch mua hoặc rút tiền trong cùng tháng đó?

Bước 1: Tạo bảng tạm thời cte_transaction để tính 

– Số lần gửi tiền (deposit_count) 

– Số lần mua (purchase_count) 

– Số lần rút tiền (withdrawal_count) 

Bước 2: Đếm số khách hàng thỏa mãn yêu cầu 

WITH cte_transaction AS ( 

SELECT  

customer_id, 

MONTH(txn_date) AS months, 

SUM(CASE WHEN txn_type = ‘deposit’ THEN 1 ELSE 0 END) AS deposit_count, 

SUM(CASE WHEN txn_type = ‘purchase’ THEN 1 ELSE 0 END) AS purchase_count, 

SUM(CASE WHEN txn_type = ‘withdrawal’ THEN 1 ELSE 0 END) AS withdrawal_count 

FROM data_bank.customer_transactions 

GROUP BY customer_id, MONTH(txn_date) 

SELECT  

months, 

COUNT(customer_id) AS customer_count 

FROM cte_transaction 

WHERE deposit_count > 1 

AND (purchase_count = 1 OR withdrawal_count = 1) 

GROUP BY months; 

Sqlcase23

 

Xem thêm: 

Các loại câu lệnh trong SQL

Cách dùng SubQuery trong SQL

Câu lệnh CASE WHEN trong SQL

Combo 3 Khóa học Business Intelligence

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm
Một số hàm sắp xếp (Sort) phổ biến trong Numpy

Sắp xếp (Sort) là một thao tác phổ biến trong phân tích dữ liệu và lập trình. Nó liên quan đến việc sắp xếp các phần tử trong một tập hợp theo

Xem thêm