好奇。只有这样,我才能解决这个问题,就是在内存中使用一个临时保存表。 (TSQL语法)
-- original test data
declare @sometable table (foo int, bar int, value int)
insert into @sometable values (1, 5, 10)
insert into @sometable values (1, 4, 20)
insert into @sometable values (2, 1, 1)
insert into @sometable values (2, 1, 10)
insert into @sometable values (2, 1, 1)
insert into @sometable values (2, 2, 13)
insert into @sometable values (3, 4, 25)
insert into @sometable values (3, 5, 1)
insert into @sometable values (3, 1, 1)
insert into @sometable values (3, 1, 1)
insert into @sometable values (3, 1, 1)
insert into @sometable values (3, 1, 1)
insert into @sometable values (3, 1, 1)
-- temp table for initial aggregation
declare @t2 table (foo int, bar int, sums int)
insert into @t2
select foo, bar, sum(value)
from @sometable
group by foo, bar
-- final result
select foo, bar, sums
from @t2 a
where sums =
(select max(sums) from @t2 b
where b.foo = a.foo)
好,什么数据库和什么版本的你使用的是数据库?这是一个很好的标签候选人! – 2009-12-10 15:28:36
选择保存哪些记录以及丢弃哪些记录的标准是什么? – nickf 2009-12-10 15:28:43
@ILMV:有时候我希望你能给出好的编辑的重点...... – nickf 2009-12-10 15:29:22