SQL仅用于求和新值

Ovi*_*gan 2 sql conditional sum

我有一张这样的桌子

NAME    VALUE
-----------------
bla      1
bla      2
bla      2
bla      3
bla      1
bla      4
bla      2
Run Code Online (Sandbox Code Playgroud)

我怎样才能只处理不同的值,忽略重复值(是否可能?)?像这样的东西:

 SELECT SUM(??condition?? value) as total FROM table
Run Code Online (Sandbox Code Playgroud)

总和应该是10.

谢谢!

Bri*_*per 6

岂不

SELECT SUM(DISTINCT value) FROM mytable;
Run Code Online (Sandbox Code Playgroud)

做诀窍?


Mar*_*cka 5

这应该工作:

SELECT SUM(value) as total FROM (SELECT DISTINCT value FROM table) tmp;
Run Code Online (Sandbox Code Playgroud)

资料来源:http://forums.mysql.com/read.php?97,203188,203787#msg-203787

SELECT SUM(DISTINCT value) as total FROM table
Run Code Online (Sandbox Code Playgroud)

资料来源:http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_sum

第二种解决方案更好,因为它不会创建临时表.因此它更快.