我有一个显示两个答案的结果,我希望得到每个记录的总计数。我的查询显示两个答案(喜欢和不喜欢)。我想计算喜欢的总数和不喜欢的总数
SELECT (CASE WHEN log_time <= rdate_up THEN 'like' ELSE 'dislike' end )as answer
FROM dbo.users
答案 0 :(得分:1)
考虑到algorithm
您提供给我们验证值是like
还是dislike
log_time <= rdate_up
然后您可以使用union
和count
分隔它们。
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 :(得分: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