前言

之前系列中在查詢計(jì)劃中一直出現(xiàn)Stream Aggregate,當(dāng)時(shí)也只是做了基本了解,對于查詢計(jì)劃中出現(xiàn)的操作,我們都需要去詳細(xì)研究下,只有這樣才能對查詢計(jì)劃執(zhí)行的每一步操作都了如指掌,所以才有了本文的出現(xiàn),簡短的內(nèi)容,深入的理解,Always to review the basics。

Stream Aggregate

Stream Aggregate通過單列或者多列來對行進(jìn)行分組并且對指定的查詢來計(jì)算聚合表達(dá)式。最常見的聚合類型如SUM、COUNT、SUM、AVG、MIN、MAX,當(dāng)我們執(zhí)行這些聚合函數(shù)時(shí)在查詢計(jì)劃中就會出現(xiàn)Stream Aggregate,Stream Aggregate是非??斓?,因?yàn)樗枰谳斎霑r(shí)通過在GROUP BY中指定的列進(jìn)行排序。如果聚合中的數(shù)據(jù)沒有進(jìn)行排序此時(shí)會通過Sort進(jìn)行預(yù)排序或者使用索引查找或者索引掃描來提前預(yù)排序數(shù)據(jù)。之前我們討論過出現(xiàn)Stream Aggregate有三種方式分別為:聚合函數(shù)聚合,分組聚合,DISTINCT聚合,實(shí)際上只有兩種,DISTINCT內(nèi)部就用到了分組,這里我們將Stream Aggregate分為兩種類型,一種是標(biāo)量聚合,另外一種則是分組聚合。我們舉一個(gè)標(biāo)量聚合的例子,也就是返回單值聚合。

標(biāo)值聚合

USE TSQL2012
GO

SELECT COUNT(*)
FROM Sales.Orders

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

下面我們再來分組聚合的例子

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

USE TSQL2012
GO

SELECT custid
FROM Sales.Orders
GROUP BY custid

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式