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

如何按两列销售额差值对SQL查询结果进行排序?

问题解答

首先明确:不能用WHERE条件来实现排序需求——WHERE子句的作用是过滤符合条件的数据行,而非控制结果集的排序顺序,排序必须通过ORDER BY子句实现。

你的需求是按「今年销售额 - 去年销售额」的差值从高到低排序(差值最大的排在最前),正确的做法是把差值计算逻辑放在ORDER BY中,并指定DESC(降序)规则。

另外注意你描述里的列名是2022和2021,但提供的SQL里写的是2012和2013,应该是笔误,下面给出对应两种场景的修正写法:

若实际列名是2022(当年)和2021(去年):

SELECT
    customerid,
    full_name,
    "2021 Sales",
    "2022 Sales",
    ("2022 Sales" - "2021 Sales") AS sales_diff  -- 可选:将差值作为单独列展示
FROM
    customer_loyalty
ORDER BY ("2022 Sales" - "2021 Sales") DESC
LIMIT 10;

若实际列名是2013和2012(对应你提供的SQL写法):

SELECT
    customerid,
    full_name,
    "2012 Sales",
    "2013 Sales",
    ("2013 Sales" - "2012 Sales") AS sales_diff  -- 可选:将差值作为单独列展示
FROM
    customer_loyalty
ORDER BY ("2013 Sales" - "2012 Sales") DESC
LIMIT 10;

额外提醒:你当前SQL里的DISTINCT如果是针对customerid(假设它是唯一标识),那这个关键字是多余的,可直接去掉,不会影响结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:30:43