我有一张桌子,想要计算价值。我的表:
表投票
vote type
1 1
-1 1
1 0
-1 0
1 0
-1 1
1 0
投票:-1 - 向下; +1 - Up;
我想得到这样的东西:
Count votes up type 1: 1
Count votes down type 1: 2
Votes up type 0: 3
Votes down type 0: 1
Sum votes type 1: 1+(-1)+(-1) = -1
Sum votes type 0: 1+(-1)+1+1 = 2
是否可以使用单个查询从mysql获取结果? 谢谢!
答案 0 :(得分:2)
我想你的问题是如何区分上下投票。
您希望按类型分组(听起来像投票/投票ID),然后选择上下投票。可以使用CASE
或IF
与COUNT
或SUM
结合使用。
COUNT
不计算NULL
值,因此我建议在COUNT
s中包含两个IF
。
SELECT
type,
COUNT(IF(vote = -1, TRUE, NULL)) AS down,
COUNT(IF(vote = 1, TRUE, NULL)) AS up
FROM votes
GROUP BY type
答案 1 :(得分:0)
你可以写
select count(*) from table where type = 1 and vote = -1
select count(*) from table where type = 1 and vote = 1
以上将为您提供所需的结果计数。
答案 2 :(得分:0)
这将有效
select sum(vote),type from table group by type;