-- ========================================================================= -- BÀI 11: TÌM LOẠI HÀNG MANG LẠI DOANH THU CAO NHẤT -- Kỹ thuật sử dụng: INNER JOIN, SUM(oi.quantity * oi.price), GROUP BY, ORDER BY DESC, LIMIT 1 -- ========================================================================= USE `labdb`; -- Cấu trúc bảng liên quan (Schema): CREATE TABLE IF NOT EXISTS `categories` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(100) NOT NULL, `description` VARCHAR(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `products` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `category_id` INT NOT NULL, `name` VARCHAR(150) NOT NULL, `price` DECIMAL(15, 2) NOT NULL DEFAULT 0.00 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `order_items` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `order_id` INT NOT NULL, `product_id` INT NOT NULL, `quantity` INT NOT NULL DEFAULT 1, `price` DECIMAL(15, 2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Câu truy vấn chính của Bài 11: SELECT c.id AS category_id, c.name AS category_name, c.description, SUM(oi.quantity) AS total_quantity_sold, SUM(oi.quantity * oi.price) AS total_revenue FROM categories c INNER JOIN products p ON c.id = p.category_id INNER JOIN order_items oi ON p.id = oi.product_id GROUP BY c.id, c.name, c.description ORDER BY total_revenue DESC LIMIT 1;