2015-02-06 4 views
0

У меня есть результат, который отображает два ответа, и я хочу привести общее количество отсчетов по каждой записи. По моему запросу я показываю два ответа (вроде и нелюбовь). Я хочу, чтобы подсчитать общее количество, как и также общее количество нелюбвиОбщее количество записей, основанных на ответах

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

Ваш вопрос непонятен. Попробуйте предоставить некоторые данные примера и результат, который вы хотите увидеть от него. – Elliveny

+0

Да, я не совсем уверен, что следую тому, о чем вы говорите. – Zane

ответ

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

Вы можете сделать это другим способом, используя 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 
Смежные вопросы