我对 MySQL 变量不太熟悉,但我试图在计算这些结果时避免冗余的子选择。第一次执行只返回 1 个正确的计算。第二次执行返回所有正确的值。
SELECT
@discount_code := '*******' AS discount_code,
@sales_revenue := (
SELECT
CAST(SUM(total_price) AS UNSIGNED)
FROM
shopify_orders
WHERE
discount_code = @discount_code
) AS sales_revenue,
@rsp_float := (
SELECT
revenue_share_percentage / 100
FROM
kpi_data
WHERE
CODE = @discount_code
) AS rsp_float,
@marketing_spend := (
SELECT
fixed_media_cost + @revenue_share
FROM
kpi_data
WHERE
CODE = @discount_code
) AS marketing_spend,
@roi_dollars := (
@sales_revenue - @marketing_spend
) AS roi_dollars,
@revenue_share := (@sales_revenue * @rsp_float) AS revenue_share,
@roi := CAST(
(@roi_dollars /@marketing_spend) …
Run Code Online (Sandbox Code Playgroud)