Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 8.2] Lưới thành phố x loại tài khoản (CROSS JOIN)

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 8: JOIN - Kết hợp bảng — khóa SQL

    CROSS JOIN (tích Descartes) ghép mọi cặp dòng của hai bảng - hữu ích để dựng "khung" báo cáo đầy đủ trước khi đếm. Lập báo cáo số tài khoản ACTIVE theo từng thành phố của khách hàng và từng loại tài khoản (account_type). Mọi tổ hợp (thành phố x loại) đều phải có mặt, kể cả khi số tài khoản bằng 0.

    Danh sách thành phố lấy từ Customers (DISTINCT city), danh sách loại từ Accounts (DISTINCT account_type). Gợi ý: CROSS JOIN hai danh sách rồi LEFT JOIN sang bảng đếm sẵn số tài khoản ACTIVE theo (thành phố, loại) - dùng COALESCE(..., 0) cho tổ hợp vắng mặt.

    Sắp xếp theo city, rồi account_type tăng dần.

    • Định dạng đầu vào:

      Customers(customer_id, city), Accounts(account_id, customer_id, account_type, status).

    • Định dạng đầu ra:

      city, account_type, active_accounts; sắp theo city, account_type.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    Can Tho	CASH	2
    Can Tho	MARGIN	1
    Da Nang	CASH	6
    Da Nang	MARGIN	4
    Ha Noi	CASH	28
    Ha Noi	MARGIN	18
    Hai Phong	CASH	5
    Hai Phong	MARGIN	2
    TP.HCM	CASH	12
    TP.HCM	MARGIN	10

    Giải thích:

    5 thành phố x 2 loại = 10 dòng, mỗi dòng một số đếm.

    Chủ đề

    📊 SQLSQLSQL: Buổi 8 – JOINTất cả môn học

    Đang tải editor...