WITH t_1 AS (
    SELECT
        a.product_id,
        a.price,
        a.cnt,
        c.shop_id,
        c.in_price
    FROM tb_order_detail a
    INNER JOIN tb_order_overall b ON a.order_id = b.order_id
    INNER JOIN tb_product_info c ON a.product_id = c.product_id
    WHERE b.event_time>='2021-10-01'
    AND c.shop_id = 901
    AND b.status != 2
),
t_2 AS (
    SELECT
        product_id,
        SUM( in_price * cnt) AS in_price_cnt,
        SUM( price * cnt) AS price_cnt,
        ROUND((1 - SUM( in_price * cnt) / SUM(price * cnt)) * 100,1)
        AS profit_rate
    FROM t_1
    GROUP BY product_id
    HAVING profit_rate > 24.9
    ORDER BY product_id ASC
),
t_3 AS (
    SELECT product_id,
           CONCAT(profit_rate,'%') AS profit_rate
    FROM t_2
),
t_4 AS (
    SELECT
    '店铺汇总' AS product_id,
    CONCAT(
    ROUND(
        (1 -  SUM( in_price * cnt) / SUM(price * cnt)) * 100
        ,1)
        ,'%') AS profit_rate
    FROM t_1
)
SELECT * FROM t_4
UNION ALL
SELECT * FROM t_3;

# 这道题的关键在于,b.event_time>='2021-10-01',虽然字段是datetime类型的分秒类型了。