_ | 覦覈襦 | 豕蠏手 | 殊螳 | 譯殊碁
FrontPage › COUNT(DISTINCT)焔

Contents

1
2 觜蟲1
3 觜蟲2
4 觜蟲3
5 觜蟲4
6 蟆磯


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'襦 り 襦 讌.

2 觜蟲1 #

蠏碁Μ螻 れ螻 螳 count(distinct )襯 企慨.
select
    count(distinct id) distinct_count
from #temp
p1.png
ろ螻 2008螻 2012 谿願 .

3 觜蟲2 #

select
    sum(val) amt
,   count(distinct id) distinct_count
from #temp

2008
p2.png
企 'Worktable'. 蟆  0, 朱Μ 所鍵  0, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  2, 朱Μ 所鍵  90, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

2012
p3.png
企 'Worktable'. 蟆  0, 朱Μ 所鍵  0, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  1, 朱Μ 所鍵  44, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

4 觜蟲3 #

select
    grp
,   sum(val) amt
,   count(distinct id) distinct_count
from #temp
group by
    grp

2008
p4.png
企 'Worktable'. 蟆  0, 朱Μ 所鍵  0, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  2, 朱Μ 所鍵  90, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

2012
p5.png
企 'Worktable'. 蟆  0, 朱Μ 所鍵  0, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  1, 朱Μ 所鍵  44, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

5 觜蟲4 #

select
    grp
,   sum(val) amt
,   count(distinct id) distinct_count
from #temp
where id <= 10
group by
    grp

2008
p6.png
企 'Worktable'. 蟆  2, 朱Μ 所鍵  34038, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  1, 朱Μ 所鍵  45, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

.. 2008覯 覲螳.

2012
p7.png
企 'Worktable'. 蟆  0, 朱Μ 所鍵  0, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.
企 '#temp'. 蟆  1, 朱Μ 所鍵  44, 覓朱Μ 所鍵  0, 覩碁Μ 所鍵  0, LOB 朱Μ 所鍵  0, LOB 覓朱Μ 所鍵  0, LOB 覩碁Μ 所鍵  0.

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 殊企.
p8.png
企 '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 
p9.png
企 '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
p10.png
企 '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 伎 覦覯 . [http]襯 覲企 CLR 讌螻襯 伎 覦覯 , 覃覈襴螳 豢覿伎 螻, 企 int襷 襷り覲襦 覦 曙 .
蠍 蠍郁鍵..
企: : るジ讓曙 襦螻豺 企Ν 譯殊語. 襦螻豺
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:52

苦 讌 . 磯Μ 蠍 企伎 朱 殊狩伎朱 螻手碓襯 螳螻 覩碁襯 螻襷 覈磯朱 蠏碁Μ螻 襯 螳讌 朱 苦 讌朱 襷. (覦覦朱れ)