【发布时间】:2015-12-28 19:27:51
【问题描述】:
我有一张这样的桌子:
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 中的第一个(或随机)名称和部门。绝对清楚的是,您可能会对此类数据产生误导性的解释,例如。 g.:
- 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
【问题讨论】:
-
我更正了预期结果中的第三行,因为我认为您输入错误。如果我做错了,请进一步编辑。
标签: sql sql-server random sql-server-2012 group-by