Mysql 在这种情况下如何避免-1
这是我的表Mysql 在这种情况下如何避免-1,mysql,sql,Mysql,Sql,这是我的表投票,其中投票类型1=反对票,投票类型0=赞成票 "id" "votedElm" "voteType" "voteProcessed" "country" "3" "6" "1" "0" "US"//1-1=0 "4" "8" "0" "0" "US"//2+0-1=1 "9" "8" "1" "0"
投票
,其中投票类型1=反对票,投票类型0=赞成票
"id" "votedElm" "voteType" "voteProcessed" "country"
"3" "6" "1" "0" "US"//1-1=0
"4" "8" "0" "0" "US"//2+0-1=1
"9" "8" "1" "0" "US"
"5" "9" "0" "0" "US"//2+0-1=1
"10" "9" "1" "0" "US"
这是我的桌子喜欢的
"id" "type" "parent" "country" "votes"
6 10 3 US 1
8 10 7 US 2
9 10 7 US 2
在上面的例子中,我运行下面的sql来计算投票中的投票数,然后将它们与like相加或相减
SELECT
votedElm,
SUM(CASE WHEN voteType = 0 THEN 1 ELSE -1 END) AS Totalcount
FROM votes
WHERE country = 'US'
GROUP BY votedElm;
但是,对于投票中的ID6
,使用上述查询时,结果是-1
。所以,1(在likes中)减去-1=2
。我想要的结果是0
。
此外,对于投票表中的8和9,结果应该是1
(2-1+0=1)
。这里显示为0
你能看出我哪里做错了,我该怎么做吗?我想你不想让选票显示为反对票。所以,先数一数投票数,而不是减去……的票数。。。。。像这样试试
Select voteby,(Count(votetype)-Sum(Case when votetype=1 then 1 else 0 end)) as b
from t group by voteby
我想你不想让选票显示为负数。所以,先数一数投票数,然后再减去。。。。。像这样试试
Select voteby,(Count(votetype)-Sum(Case when votetype=1 then 1 else 0 end)) as b
from t group by voteby
“voteType 1=反对票,voteType 2=赞成票。”---而在表格示例中有1和0个字母。我的错。我离完全疯狂还有几步之遥。“结果是-1。那么,1(在likes中)减去-1=2”这是什么?@diEcho 1来自likes表,减去从表投票中运行sql得到的-1。“voteType 1=反对票,voteType 2=赞成票。”——而在表示例中有1和0。我的错。结果是-1。那么,1(在喜欢中)减去-1=2“这是什么?@diEcho表likes中的1减去表投票中运行sql得到的-1。我还有一些事情可以做(不是免费的)。请参阅我的个人资料以获取联系信息。如果你感兴趣的话。非常感谢您的帮助。@Norman非常欢迎您……但在联系我之前,我想知道您需要什么样的帮助,,,,与MySql和sql最相关。那种。创建sql查询、事件等。没什么不可能的。@Norman我可以试试,但我不能保证我能解决我所有的电子邮件idamit521990@yahoo.comI还有几件事你可以做(不是免费的)。请参阅我的个人资料以获取联系信息。如果你感兴趣的话。非常感谢您的帮助。@Norman非常欢迎您……但在联系我之前,我想知道您需要什么样的帮助,,,,与MySql和sql最相关。那种。创建sql查询、事件等。没什么不可能的。@Norman我可以试试,但我不能保证我能解决我所有的电子邮件idamit521990@yahoo.com