2015-02-06 74 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