2015-02-06 76 views
0

我有一个结果显示两个答案,并且我希望得到每个记录的总计数。用我的查询,我显示两个答案(喜欢和不喜欢)。我想指望像总数,也看不顺眼根据答案计数记录总数

SELECT (CASE WHEN log_time <= rdate_up THEN 'like' ELSE 'dislike' end)as answer 
FROM dbo.users 
+4

你的问题不清楚。尝试提供一些示例数据和你想从中看到的结果 – Elliveny 2015-02-06 21:19:39

+0

是的,我不完全相信我遵循你所谈论的内容。 – Zane 2015-02-06 21:26:02

回答

1

总数考虑到algorithm您给我们来验证,如果值是一个likedislike

log_time <= rdate_up 

那么你可以使用unioncount将它们分开。

select count(*) as count_of_like 
from dbo.users 
where log_time <= rdate_up 
union 
select count(*) as count_of_dislike 
from dbo.users 
where log.time > rdate_up; 
1

你可以用CASE以另一种方式做到这一点。这会更快,因为它只碰到一次基表。

select sum(case when log_time <= rdate_up then 1 end) as LikeCount 
    , SUM(case when log.time > rdate_up then 1 end) as DislikeCount 
from dbo.users