В MySQL можем ли мы использовать значение COUNT и SUM для вычисления значения в другом выходном столбце, используя один SELECT? - PullRequest
0 голосов
/ 05 февраля 2020

Допустим, у нас есть что-то вроде:

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

К тому же запросу мы можем добавить столбец, который будет A * B, например, с одним единственным SELECT в целом?

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Вам нужно либо повторить выражение, либо превратить его в подзапрос и выполнить вычисления во внешнем запросе. Ваше выражение не так сложно (и может быть упрощено, как показано ниже), поэтому я бы go для первого варианта здесь:

SELECT 
    SUM(Column1 = 1) a, 
    SUM(Column2) b,
    SUM(Column1 = 1) * SUM(Column2) c
FROM MyDatabase;
0 голосов
/ 05 февраля 2020

Предполагая, что column1 принимает только значения 0/1, вы можете сделать:

sum(column1 * column2)

Если он может принимать другие значения, то:

sum( (column1 = 1) * column2 )

Оба они используют расширение MySQL, в котором логические значения обрабатываются как числа, с "1" для true и "0" для false.

...