Sql 如何找到具有相同应用程序的用户组?

Sql 如何找到具有相同应用程序的用户组?,sql,.net,sql-server,vb.net,visual-studio,Sql,.net,Sql Server,Vb.net,Visual Studio,我只是想为下面的格式道歉。。。现在开始有点晚了,我一整天都在看这个,眼睛有点模糊 这已经困扰了我几天了,我需要能够找到一组在他们的PC上安装了相同应用程序的用户 首先,请看下表 ApplicationName UserName App1 Tom App2 Tom App3 Tom App5 Gerry App6 Gerry App7 Gerry App1

我只是想为下面的格式道歉。。。现在开始有点晚了,我一整天都在看这个,眼睛有点模糊

这已经困扰了我几天了,我需要能够找到一组在他们的PC上安装了相同应用程序的用户

首先,请看下表

ApplicationName UserName
App1            Tom
App2            Tom
App3            Tom
App5            Gerry
App6            Gerry
App7            Gerry
App1            Peter
App2            Peter
App3            Peter
App4            Peter
App1            Joe
App2            Joe
App4            Joe
App5            Mark
App5            Tony
App6            Jessy
最后我需要得到的是一组拥有相同应用程序的用户。。。。例如 第一组:汤姆、彼得、乔(因为他们有app1->4的组合)

第二组:Gerry、Mark、Tony、Jessy(因为他们有app5->7的组合)


非常感谢

正如评论所指出的,您没有指定答案应该是什么样的,但这里有一些SQL帮助您:

with data as 
(
select distinct a.UserName,
stuff((select ','+ApplicationName 
       from Table1 as b 
       where b.UserName=a.UserName 
       for xml path('')),1,1,'') as Applications
from Table1 as a
)
select Applications, count(*) from data
group by Applications
;

在这里摆弄示例数据:

你能发布你希望输出的样子吗?Joe和Tom和Peter没有相同的应用程序({1,2,3}vs{1,2,4})。如果应用程序之间存在某种逻辑连接,创建一个AppGroup列,然后你可以根据组进行选择。如何确定组合?2个应用程序?3个应用程序?4个应用程序?您应该向我们展示SQL语句尝试的样子。所以,当你向我们展示你所做的尝试时,效果最好,我们可以向你展示它可能会失败。