Sql server 2008 如何计算登录的唯一用户数?

Sql server 2008 如何计算登录的唯一用户数?,sql-server-2008,Sql Server 2008,是否有人可以帮助我使用SQL Server查询来计算以下指标: 注册用户总数。如果用户已登录,则视为已注册 活动用户活动用户定义为在过去30天内1+次登录 按设备类型列出的活动用户 iPhone应用程序=?? Android应用程序=?? 我的桌子看起来像这样: 非常感谢,我使用下面的SQL生成了我在示例中输入的数据集 SELECT SUB1.First_NM, SUB1.Last_NM, SUB1.Customer_ID, SUB1.Conversion_date, S

是否有人可以帮助我使用SQL Server查询来计算以下指标:

注册用户总数。如果用户已登录,则视为已注册 活动用户活动用户定义为在过去30天内1+次登录

按设备类型列出的活动用户

iPhone应用程序=?? Android应用程序=?? 我的桌子看起来像这样:

非常感谢,我使用下面的SQL生成了我在示例中输入的数据集

  SELECT  
SUB1.First_NM,  
SUB1.Last_NM,  
SUB1.Customer_ID,  
SUB1.Conversion_date,  
SUB1.APP_TYPE,  
SUB1.Device_Typ,  
CONVERT (VARCHAR (7),MAX(SUB1.Most_Recent_App_Login),120) as LATEST_App_Login  
FROM  
(  
SELECT   
CASE   
WHEN A.USER_AGNT_STR LIKE '%ANDROID%'   
then 'Android'  
WHEN A.USER_AGNT_STR LIKE '%iPad%'   
then 'iPad'   
WHEN A.USER_AGNT_STR LIKE '%iPhone%'     
THEN 'iPhone' ELSE NULL END AS APP_TYPE,  
B.Customer_ID,  
A.DEVICE_TYP,  
B.First_nm,  
B.Last_NM,  
CONVERT(VARCHAR (7),MAX(B.File_CREATE_DT),120) as Conversion_Date,  
CONVERT (VARCHAR (7),MAX(A.LOGIN_DTTM),120) as Most_Recent_App_Login  
FROM [Tabl1]] A  
JOIN [Tabl2] B  
on A.USER_ID = B.FILE_USER_ID  
AND A.PROD_DT = B.PROD_DT  
WHERE A.USER_AGNT_STR like '%FRB Banking/%'  
AND B.PROD_DT >= dateadd(day, -360, getdate())  
GROUP BY A.USER_AGNT_STR,A.DEVICE_TYP,B.Customer_ID, B.FIRST_NM, B.Last_NM  
HAVING   
A.USER_AGNT_STR like '%iPhone%'  
or A.USER_AGNT_STR like '%iPad%'    
or A.USER_AGNT_STR like '%Android%'  
OR A.DEVICE_TYP like '%Phone%'  
OR A.DEVICE_TYP LIKE '%Tablet%'  
OR A.DEVICE_TYP LIKE '%Android%'  
AND B.Customer_ID <> ' '  
AND B.FIRST_NM != 'Placeholder'  
) SUB1  
GROUP BY Customer_ID, APP_TYPE, First_NM, Last_NM, Conversion_Date, Device_Typ  
order by Customer_ID  

这将是一个开始。如果需要一个记录集,可以使用UNION,例如,将RegisteredUsers更改为[PropertyName]列,其值在[PropertValue]列中

select Count(distinct UserId) as [RegisteredUsers]
from TABLE

select Count(distinct UserId) as [ActiveUsers]
from TABLE
where LastLogin >= DATEADD(day, -30, GETDATE())
group by DeviceType

select DeviceType, Count(distinct UserId)
from TABLE 
where LastLogin >= DATEADD(day, -30, GETDATE())
group by DeviceType

select ApplType, Count(distinct UserId)
from TABLE 
where LastLogin >= DATEADD(day, -30, GETDATE())
group by ApplType

StackOverflow不是代码编写服务。您需要付出一定的努力,包括您尝试过的代码或查询、遇到的错误、示例数据和预期结果。您好,谢谢,我知道这不是免费的代码编写服务。这是我第一次问关于堆栈溢出的问题。请看帮助部分。它有很多关于如何最大限度地利用网站的信息:非常感谢Randy,我添加了我创建的SQL,以从我的示例中获取数据集