SELECT
    category_id,
    round(sum(order_amount), 2) total_sales,
    sum(
        CASE
            WHEN customer_gender = '男' THEN 1
            ELSE 0
        END
    ) male_customers,
    sum(
        CASE
            WHEN customer_gender = '女' THEN 1
            ELSE 0
        END
    ) female_customers
FROM
    (
        SELECT
            a.category_id,
            a.order_amount,
            b.customer_gender
        FROM
            order_details AS a
            INNER JOIN customer_info AS b ON a.order_id = b.order_id
        WHERE
            a.order_date BETWEEN '2024-01-01' AND '2024-06-30'
    ) AS t
GROUP BY
    category_id
ORDER BY
    category_id ASC

此题ez,先将给的两个表连结取出来需要用的数据,然后再GROUP BY 聚合就好了