好奇。只有這樣,我才能解決這個問題,就是在內存中使用一個臨時保存表。 (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