【问题标题】:SUM of two columns from same table同一张表中两列的总和
【发布时间】:2016-01-12 07:47:23
【问题描述】:

我有一个名为ITEM_MASTER 的表

ITEM
LEVEL

LEVEL 可以是 1 或 2。

我想找出 2 级项目与 1 级项目的计数差异。

SUM = Level2 Items - Level1 Items

【问题讨论】:

  • 明确一点 - 您正在寻找数学差异?例如,如果有 100 个 level2 项目和 60 个 level1 项目,你想得到 40 个?
  • 是的,我需要计数差异。
  • @ImranHemani 欢迎来到 SO 或类似的...请阅读您未来的问题... :) codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question

标签: sql oracle select sum


【解决方案1】:

做到这一点的一个巧妙技巧是使用 case 表达式将 level2 项目计数为正数,将 level1 项目计数为负数:

SELECT SUM(CASE level WHEN 2 THEN 1 ELSE -1 END)
FROM   item_master

编辑:
上面的查询假设level 只能是 1 或 2。如果这不是真的,你必须在 case 表达式中处理它:

SELECT SUM(CASE level WHEN 2 THEN 1 WHEN 1 THE -1 END)
FROM   item_master

【讨论】:

    【解决方案2】:

    一个简单的查询是

    select (select sum(item) from table where level = 1) - (select sum(item) from table where level = 2) from dual
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多