MySQL SUM多个值

雅库布·库切拉(JakubKučera)

我对MySQL查询有疑问。我有一行:

id, value(float), value2(enum)
1         , 100,   -1
1         , 100,   1
2         , 100,   -1
3         , 100,   1

我需要输出:

1, 0
2, -100
3, 100

不要工作

SELECT id, SUM(value*value2) as vysledek
FROM table
group by id

感谢帮助。

火箭危险品

这里的问题是您正在使用该enum类型。当转换为数字时,enums将根据其索引进行转换。

如果您的字段是enum('1', '-1')1则将转换为1-1并将转换为2为什么?因为那是他们在该enum领域的索引

我建议您使用数字类型而不是enum此处。这样可以节省您的麻烦,并使查询更好。

如果必须将其保留为enum,则可以通过执行以下操作将其“投射”为数字:

SELECT id, SUM(value * CAST(CAST(value2 AS CHAR) AS SIGNED))

您需要先将其转换为字符串,然后转换为数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章