我试图在我的博客中找到投票数,这相当于投票时间和投票时间之间的差异。
所有投票都存储在表votes
的数据库中。如果表中的votetype
字段等于0,则表示用户已投票。如果它等于1,则用户已将该帖子投票。
我想找出投票计数和投票数之间的差异。像这样的查询。
SELECT
COUNT(
SELECT * FROM votes WHERE votetype=0
)
-
COUNT(
SELECT * FROM votes WHERE votetype=1
)
FROM votes WHERE postid=1
但是这个查询给了我一个语法错误。
我如何找到投票数?
答案 0 :(得分:2)
您可以使用条件聚合。对于upvotes,您可以为每行分配1
,为{0}分配-1
。将它们相加然后加起来。
SELECT
sum(case when votetype=0 then 1 else 0 end) +
sum(case when votetype=1 then -1 else 0 end)
FROM votes
WHERE postid=1