TSQL按位操作:如何找出常见的值分组?

时间:2013-04-12 23:08:02

标签: tsql statistics bitwise-operators

背景:我正在考虑整合应用程序的安全角色。有20个角色可以应用于五个访问级别(如区,县,州)中的一个或多个。大多数用户对每个访问级别都有多个角色,因此我希望按访问级别获取有关用户最常见分组的统计信息。

编辑:业务用户对进入系统的人员的工作角色与使用系统的人员的安全角色感到困惑。作业角色和安全角色之间存在直接映射。企业主发现的是他们不想管理用户可能被分配的角色数量的安全性。

我为角色创建了等效的标志枚举(Id是角色的主键,标志是我的flay值):

DECLARE @flags table(Id int,Flag int);
insert into @flags
values (1 , 1),
(2 , 2), 
(4 , 4),  
(5 , 8),  
(6 , 16), 
(7 , 32), 
(8 , 64), 
(9 , 128), 
(10 , 256), 
(11 , 512), 
(12 , 1024), 
(13 , 2048), 
(14 , 4096), 
(15 , 8192), 
(16 , 16384), 
(17 , 32768), 
(18 , 65536), 
(19 , 131072),
(20 , 262144),
(21 , 524288)

我已经查询了按访问级别分组的系统中每个用户的用户角色的总和,并且想要查询用户群体中最常见的角色分组,以便我可以确保不要让新角色设置太笼统。

UserName        Roles   AccessLevel
User1@test.edu  8192    County
User1@test.edu  262400  District

任何正确方向的指针都会很好。我不太熟悉统计数据,所以如果我使用的整个方法都不好,请告诉我。

0 个答案:

没有答案