关于count的mysql查询问题

时间:2011-08-24 23:08:47

标签: mysql database

SELECT if((COUNT(vote=1)-COUNT(vote=0) > 0,1,count(groupid))
FROM sample WHERE uid = $uid GROUP BY groupid

在if语句中,我想知道是否有任何简单的方法来实现这一点:COUNT(vote = 1)-COUNT(vote = 0)> 0

3 个答案:

答案 0 :(得分:3)

使用SUM而不是COUNT:

SELECT if((SUM(vote=1)-SUM(vote=0) > 0,1,count(groupid))
FROM sample WHERE uid = $uid GROUP BY groupid

答案 1 :(得分:1)

您希望除vote之外的0总和计为-1

SELECT if(sum(if(vote, 1, -1)) > 0, 1, count(groupid))
...

答案 2 :(得分:0)

你打算做什么

Select columns, 
case when (COUNT(vote=1) - COUNT(vote=0)) > 0
then 'something'
else 'something else' as foo
From Sample
Where uid=$uid
Group By groupid

我不太明白你想要实现的目标。 在我的例子中,当差异大于0时,你选择列(或只是那种情况)。如果它更大则显示'某事'否则显示'其他'

虽然,我没有办法在这台电脑上测试它,但也许它会引导你或其他人朝着正确的方向前进。