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.
谢谢!
这应该工作:
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
第二种解决方案更好,因为它不会创建临时表.因此它更快.