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
с в int
s использовать SUM()
, Попробуй это:
select sum(cast (flag1 as int),cast (flag2 as int) ...