在这里选择喜欢的sum()

时间:2013-11-22 12:44:29

标签: mysql sql stored-procedures

在下表中,我试图用总票数的总和来更新每一行父母。

这里的一切都很好,除了我想用所有SUM()的{​​{1}}而不是我现在正在做的事情。现在,会发生这样的情况:如果type = 10的总数发生变化,则父母的总数不会调整,而是将它们相加。我无法弄清楚如何在其中添加type = 10。我到这里来了。你能帮忙吗?

如果您检查我的存储过程,您将看到它是如何工作的。

以下内容工作正常。我不确定如何在sum()上设置存储过程来演示它。

我的表名为sqlfiddle,结果为

这些结果实际上是由

下面的存储过程完成的
likesd

这是我正在使用的存储过程

"id"    "type"  "path"          "likes"
"1"     "1"     "0"             "20"
"2"     "1"     "0"             "20"
"3"     "2"     "1,2"           "20"
"4"     "2"     "1,2,3"         "20"
"5"     "2"     "1,2,3"         "0"
"6"     "3"     "1,2,3,4"       "0"
"7"     "3"     "1,2,3,4"       "0"
"8"     "4"     "1,2,3,4"       "20" 
"9"     "10"    "1,2,3,4,8"     "5" // These type 10 are books
"10"    "10"    "1,2,3,4,8"     "5" // These type 10 are books
"11"    "10"    "1,2,3,4,8"     "5" // These type 10 are books
"12"    "10"    "1,2,3,4,8"     "5" // These type 10 are books

1 个答案:

答案 0 :(得分:0)

我不完全相信这是否有效,但是:

 select
type
,SUM(likes) as NUmberofLikes
into temp1
from testLikes
group by type

UPDATE testlikes t1
SET likes= (select NumberOFLikes from temp1 t2 where t1.type=t2.type)