You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL:如何计算指定日期区间内各产品的销售额差值

计算产品两日销售额差值的SQL方案

针对筛选2023-10-06与2023-10-07记录、计算各产品两日销售额差值的需求,替代GROUP_CONCAT的可行方案有两种:

方法一:条件聚合(简洁高效)

通过CASE语句分别提取两天的销售额,直接完成差值计算:

SELECT 
    product_id,
    SUM(CASE WHEN date = '2023-10-07' THEN total_sales ELSE 0 END) - 
    SUM(CASE WHEN date = '2023-10-06' THEN total_sales ELSE 0 END) AS sales_difference
FROM product_daily
WHERE date IN ('2023-10-06', '2023-10-07')
GROUP BY product_id;

该方案会自动处理单日期缺失的情况——若某产品仅存在其中一天的销售额数据,缺失日期的销售额将按0计算。

方法二:自连接

将两天的数据通过product_id关联,直接计算对应销售额的差值:

SELECT 
    t1.product_id,
    t2.total_sales - t1.total_sales AS sales_difference
FROM product_daily t1
JOIN product_daily t2 
    ON t1.product_id = t2.product_id 
    AND t1.date = '2023-10-06' 
    AND t2.date = '2023-10-07';

注意:此方案仅返回两天均有记录的产品,若某产品缺失其中一天的数据会被过滤。

结果验证

用你提供的示例数据测试,两种方案均会得到期望结果:

product_idsales_difference
17
24

内容的提问来源于stack exchange,提问作者Perfection

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:25:04