我有一个像这样的表格:
CREATE TABLE Table1
([IdeaNr] int, [SubmitterName] varchar(4), [SubmitterDepartment] varchar(4))
;
INSERT INTO Table1
([IdeaNr], [SubmitterName], [SubmitterDepartment])
VALUES
(1, 'Joe', 'Org1'),
(1, 'Bill', 'Org2'),
(1, 'Kate', 'Org1'),
(1, 'Tom', 'Org3'),
(2, 'Sue', 'Org2'),
(3, 'Bill', 'Org2'),
(3, 'Fred', 'Org1'),
(4, 'Ted', 'Org3'),
(4, 'Kate', 'Org1'),
(4, 'Hank', 'Org3')
;
我希望从查询中获取以下结果:
IdeaNr SubmitterCount SubmitterRndName SubmitterRndDepartment
1 4 Joe or ... Org1 (if Joe)
2 1 Sue Org2
3 2 Bill or ... Org2 (if Bill)
4 3 Ted or ... Org3 (if Ted)
我尝试过使用Table1自连接、派生表和GROUP BY等各种JOIN方法,例如:
SELECT COUNT(IdeaNr) AS SubmitterCount,IdeaNr,SubmitterName,SubmitterDepartment
FROM Table1
GROUP BY IdeaNr,SubmitterName,SubmitterDepartment
我认为问题在于创建一个算法,该算法仅获取出现在IdeaNr组中的第一个(或随机的)名称和部门。显然,您可能会得到那种数据的误导性解释,例如:
- Org1有2个想法
- Org2有1个想法
- Org3有1个想法
但这种“错误的平均值”对于任务是可以接受的。你能帮忙吗?
编辑:在讨论过程中,预期结果发生了变化。期望的结果已更改为:
IdeaNr SubmitterCount SubmitterRndName SubmitterRndDepartment
1 4 Joe, Bill, ... GroupIdea
2 1 Sue Org2
3 2 Bill, Fred GroupIdea
4 3 Ted, ... GroupIdea