MySQL сумма крошечных

У меня есть таблица с пятью столбцами tinyint.

Если я сделаю запрос для поиска строки, я получу результат, подобный этому:

select flag1, flag2, flag3, flag4, flag5 from mytable where whatever;

Набор результатов (изображение)

Что мне нужно, это получить сумму, как если бы они были целыми числами. В этом примере выходные данные равны четырем и одному нулю, поэтому я хотел бы получить 4.

Этот запрос не работает:

select sum(flag1, flag2, flag3, flag4, flag5) from mytable where whatever;

Это не так:

select sum(flag1, flag2, flag3, flag4, flag5) from mytable where whatever;

4 ответа

select sum(flag1 + flag2+ flag3+ flag4+ flag5) sumflag  from mytable 

Результат:

| sumflag |
|---------|
|       4 |

Тестовая демонстрация


DDL:

CREATE TABLE mytable
    (`flag1` tinyint, `flag2` tinyint, `flag3` tinyint, `flag4` tinyint, `flag5` tinyint)
;

INSERT INTO mytable
    (`flag1`, `flag2`, `flag3`, `flag4`, `flag5`)
VALUES
    (1, 1, 1, 0, 1)
;

Вы можете использовать + Оператор для суммирования значений строки.

SELECT flag1 + flag2 + flag3 + flag4 + flag5
       FROM mytable;

Выберите сумму (flag1+flag2+flag3+flag4+flag5) в качестве общей суммы,id из mytable группы по id

Вы должны бросить tinyintс в ints использовать SUM(), Попробуй это:

select sum(cast (flag1 as int),cast (flag2 as int) ...
Другие вопросы по тегам