Sql 如何找到具有相同应用程序的用户组?
我只是想为下面的格式道歉。。。现在开始有点晚了,我一整天都在看这个,眼睛有点模糊 这已经困扰了我几天了,我需要能够找到一组在他们的PC上安装了相同应用程序的用户 首先,请看下表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
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语句尝试的样子。所以,当你向我们展示你所做的尝试时,效果最好,我们可以向你展示它可能会失败。