在 MySQL 中,我们可以使用单个 SELECT 使用 COUNT 和 SUM 值来计算另一个输出列中的值吗?

In MySQL, can we use the COUNT and SUM value to calculate a value in another output column using a single SELECT?

假设我们有类似的东西:

SELECT COUNT(IF(Column1 = 1, NULL, 1)) AS "A", SUM(Column2) AS "B" FROM MyDatabase;

在同一个查询中,我们可以添加一个列,例如 A *​​ B,总共只有一个 SELECT 吗?

您需要重复表达式,或者将其转换为子查询并在外部查询中进行计算。你的表达没有那么复杂(并且可以简化,如下所示),所以我会选择第一个选项:

SELECT 
    SUM(Column1 = 1) a, 
    SUM(Column2) b,
    SUM(Column1 = 1) * SUM(Column2) c
FROM MyDatabase;

假设column1只取0/1的值,你可以这样做:

sum(column1 * column2)

如果可以取其他值,则:

sum( (column1 = 1) * column2 )

这两个都使用 MySQL 扩展,布尔值作为数字处理,“1”表示真,“0”表示假。