2
我想計算符合特定條件的組中項目的比例。我已經解決了這個問題,但很想知道我的解決方案是否是最優的,因爲查詢在我的大型(10m +)數據集上花費了很長時間。每組匹配行的比例
這是我在最簡單的形式:
create table #tableA
(
id int IDENTITY(1,1),
groupid int,
flag bit,
CONSTRAINT [PK_TableA] PRIMARY KEY CLUSTERED
(
[id] ASC
)
)
insert into #tableA (groupid,flag) values (1,0),(1,0),(1,1),(2,0),(2,1)
select
a.groupid ,
cast(totalCount as float)/count(*) as ratio
from
#tableA a
join
(
select
groupid,
COUNT(*) totalCount
from
#tableA
where
flag=1
group by
groupid
) b on a.groupid=b.groupid
group by
a.groupid,
b.totalCount
drop table #tableA
有沒有寫這個查詢更有效的方式?
當然!謝謝 – spender 2009-06-01 00:12:24
如果它按照你想要的方式工作,你應該標記這個接受的 – 2009-06-01 00:27:26