sql server - Querying a running-percentage over a date range from MSSQL? -


i want graph % of users on time have twitter account connected. number of users changes constantly, , % of them connect twitter account.

the table has user account specific createdatetime column tw_connectdatetime column.

let's i'm interested in trend of % connected on last 7 days. there way can have mssql calculate percentage every day in specified range, or need myself using multiple queries?

doing in app logic (pseudocode):

for day in days:     query:         select              count(userid) totalusers             ,c.connected             ,cast(c.connected float)/count(userid) percentage                      users             outer apply (                  select                      count(userid) connected                                       users                                      tw_connectdatetime <= $day             ) c                      createdatetime <= $day         group             c.connected 

what i'm unsure of how, if it's possible, expand run each day, results include date column , same values running above query each date in range.

is possible? if so, how?

actually can use query joined days, this:

 cte_days (      select @datestart day      union      select dateadd(dd, 1, c.[day]) [day]      cte_days c      c.[day] < @dateend  )  select      d.[day],      count(u.userid) totalusers,      c.connected,      cast(c.connected float)/count(u.userid) percentage  cte_days d      inner join users u on u.createdatetime <= d.[day]      outer apply (           select               count(t.userid) connected           users t          t.tw_connectdatetime <= d.[day]     ) c   group d.[day], c.connected 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -