_覓 | 覦覈襦 | 豕蠏手 | 殊螳 | 譯殊碁 |
FrontPage › COUNT(DISTINCT)焔
|
|
[edit]
1 螳 #count(distinct ) 襴郁化郁 襷. 企 蟆曙一 襴螻, SQL Server 覯 磯ジ 谿企 企れ 危エ覲伎. 朱 ろ 一危磯ゼ 襷れ.
if object_id('tempdb.dbo.#temp') is not null drop table #temp ;with temp as ( select * from (values (1),(2),(3),(4),(5),(6),(7)) t(seq) ) select a.seq id , (b.seq + c.seq + d.seq + f.seq) % 3 grp , b.seq + c.seq + d.seq + f.seq val into #temp from temp a cross join temp b cross join temp c cross join temp d cross join temp f谿瑚襦 set statistics io on 覃 企 '#temp_______________________________________________________________________________________________________________000000015577' 螳 朱 る '#temp'襦 り 襦 讌. [edit]
2 觜蟲1 #蠏碁Μ螻 れ螻 螳 count(distinct )襯 企慨.
select count(distinct id) distinct_count from #temp ろ螻 2008螻 2012 谿願 . [edit]
3 觜蟲2 #select sum(val) amt , count(distinct id) distinct_count from #temp 2008
企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 2, 朱Μ 所鍵 90, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 2012
企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 44, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. [edit]
4 觜蟲3 #select grp , sum(val) amt , count(distinct id) distinct_count from #temp group by grp 2008
企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 2, 朱Μ 所鍵 90, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 2012
企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 44, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. [edit]
5 觜蟲4 #select grp , sum(val) amt , count(distinct id) distinct_count from #temp where id <= 10 group by grp 2008
企 'Worktable'. 蟆 2, 朱Μ 所鍵 34038, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 45, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. .. 2008覯 覲螳.
2012
企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 44, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. [edit]
6 蟆磯 #讌螻 COUNT(DISTINCT)螳 朱 一伎 螻 るジ 讌螻(COUNT(DISTINCT)襯 2 伎 ) 螳 一企 磯 るゴ讌襷 企 2覦 伎 i/o螳 覦. 螳 豕 COUNT(DISTINCT)螳 るジ 讌螻 螳 一願, where 譟郁唄 覈 SQL ろ 企. 蟆曙 COUNT(DISTINCT)螳 覈 襷 Spool企. Spool 一一 伎 tempdb 郁, 暑 一一企. 蠏碁覩襦 襷 IO螳 覦蟆 . 蠍郁讌螳 2008 伎手鍵. 2012 COUNT(DISTINCT) 覦覲給 一一 譯殊讌襷, 願 COUNT(DISTINCT)螳 1襷 螳 襷 願屋. れ SQL 覲伎.
select sum(val) amt , count(distinct id) distinct_count , count(distinct grp) distinct_count from #temp where id <= 10 -- 譟郁唄 觜朱 spool table scan 3 殊企. 企 'Worktable'. 蟆 3, 朱Μ 所鍵 34100, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 44, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 譟郁 るジ 覦覯 危エ覲伎. 2012覯 columnstore index襯 燕 . columnstore index 螻 SQL ろ企慨.
create nonclustered columnstore index ncix_01 on #temp ( id , grp , val ) select sum(val) amt , count(distinct id) distinct_count , count(distinct grp) distinct_count from #temp 企 'Worktable'. 蟆 0, 朱Μ 所鍵 0, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 3, 朱Μ 所鍵 26, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. i/o螳 襷 譴. 蠏碁る where 譟郁唄 譴る 企至 蟾?
select sum(val) amt , count(distinct id) distinct_count , count(distinct grp) distinct_count from #temp where id <= 10 企 'Worktable'. 蟆 3, 朱Μ 所鍵 34100, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. 企 '#temp'. 蟆 1, 朱Μ 所鍵 26, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0, LOB 朱Μ 所鍵 0, LOB 覓朱Μ 所鍵 0, LOB 覩碁Μ 所鍵 0. ..
2012 覲螳. count(distinct)讌螻 ssis襯 伎 蟆 螻るゼ 企 襭 蟆. CLR 伎 覦覯 . 蠍襯 覲企 CLR 讌螻襯 伎 覦覯 , 覃覈襴螳 豢覿伎 螻, 企 int襷 襷り覲襦 覦 曙 .
鏤
|
讌 覈 覿 朱 讌 覈詩螻 . 蠏碁覩襦 磯る 蟆 る . ( ) |