У меня есть тематическое исследование, похожее на обсуждаемое здесь: пользователи, использующие временную метку входа в MySQL
Однако я хотел бы решить это на языке SQL Server (не mySQL), и у меня есть 2 немного разных запроса: Учитывая таблицу, содержащую User_id и login_timestamp, рассчитать:
1) Доля людей, которые заходили в систему каждый день на прошлой неделе 2) Ежемесячная частота доступа людей, учитывая их последний вход в систему (например, если предположить, что их последний вход был вчера, какова была ежемесячная частота, начиная со вчерашнего дня и глядя на 1 месяц назад?)
На первый вопрос у меня есть ответ, но я хотел бы спросить, может ли кто-нибудь подтвердить его для меня?
select sum(A.access)/count(A.access) as ratio_weekly_access
from
(select user_id,
case when
count(distinct format(timestamp_login,'YYYY-MM-DD')) =7 then 1
else 0 end as access
from xxx
where FORMAT(timestamp_login,'YYYY-MM-DD') between dateadd(day,-7, cast(getdate() as date)) and cast(getdate() as date)
group by user_id
) A
Заранее спасибо за вашу помощь!
case
,count (distinct...)
, я не думаю, что это сработает, поскольку случай будет проверять каждую запись набора результатов, соответствующую условиюwhere
. - person FDavidov   schedule 16.10.2016CASE...COUNT
, но у меня нет доступа к базе данных, чтобы проверить это. Если вы попробовали и это сработало, значит, все в порядке. - person FDavidov   schedule 16.10.2016