mysql - 如何在mysql中添加两个求和值

标签 mysql sum

是否可以像下面显示的查询(图 1)那样在 mysql 中添加两个求和值?

我有下面的查询,我正在尝试添加数量和专业。

图一

    SELECT  

    SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
    SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro

    SUM(pro + qty)

    FROM OrderDetails;

我将需要在整个查询过程中多次使用 qty 和 pro,所以我不想编写如图 2 所示的查询

图 2

    SELECT  

    SUM(
    SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END)
    + 
    SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END)
    )

    FROM OrderDetails;

已编辑

我在整个查询过程中多次使用 qtypro 的意思如下。

查询示例一 - 是我正在尝试做的,我可以在整个查询过程中多次重复使用 qty 和 pro,比如 sum(pro + qty)having (qty > 0 AND pro > 0),而无需重写整个求和语句。

SELECT  

SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro

SUM((pro + qty)/100)

FROM OrderDetails

GROUP BY value

HAVING (
       qty > 2
       AND
       pro > 2
       )
;

查询示例 2 - 是我目前必须做的,而且必须重写 SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 似乎是非常糟糕的做法0 END) 多次,而不是像上面的查询中那样简单的 qtypro

SELECT  

SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro

SUM((
     SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END)
      +
     SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END)
)/100)

FROM OrderDetails

GROUP BY value

HAVING (
       SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) > 2
       AND
       SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) > 2
       )
;

SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS 这样的示例中定义一次后是否无法添加 SUM(pro + qty)数量

最佳答案

您可以使用以下查询进行计算。

SELECT  

SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro,
SUM(CASE 
        WHEN value > 0 AND xp = 0 THEN 1
        WHEN value > 1 AND xp = 2 THEN 1 
    ELSE 0 END) AS qtyProSum
FROM OrderDetails;

关于mysql - 如何在mysql中添加两个求和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080141/

相关文章:

Java增量问题

mysql - 搜索一列中与另一列(同一表)中的单个值匹配的多个值

选择值后MySql变量为空

c - 二维数组的和

python - 列表中每个整数的数字总和

algorithm - 楼层求和算法

php - 用户间信用转移的Mysql事务

php - 如果没有找到,MySQL 返回 0

php - 提高循环效率

mysql - 每个日期的 SQL 总和