科技知識動態:GroupbyALL

導讀跟大家講解下有關GroupbyALL,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說GroupbyALL,小編也收集到了有關GroupbyALL的相

跟大家講解下有關GroupbyALL,相信小伙伴們對這個話題應該也很關注吧,現在就為小伙伴們說說GroupbyALL,小編也收集到了有關GroupbyALL的相關資料,希望大家看到了會喜歡。

Group by ALL 。和不加ALL差別就是加了ALL后包含所有組和結果集,甚至包含那些其中任何行都不滿足 WHERE 子句指定的搜索條件的組和結果集。注意的是指定了 ALL,將對組中不滿足搜索條件的匯總列返回空值。declare @t table(id int,col char(2))insert @t sel

Group by ALL 。和不加ALL差別就是加了ALL后包含所有組和結果集,甚至包含那些其中任何行都不滿足 WHERE 子句指定的搜索條件的組和結果集。注意的是指定了 ALL,將對組中不滿足搜索條件的匯總列返回空值。declare @t table(id int,col char(2))insert @t select 1,'a'insert @t select 1,'a'insert @t select 2,'a'insert @t select 3,'a'insert @t select 3,'a'insert @t select 4,'a'insert @t select 5,'a'insert @t select 5,'a'insert @t select 5,'a'--1select id,COUNT(1)from @tgroup by id--2select id,COUNT(1)from @twhere id < 3group by id針對上面的數據我們可以得到顯而意見的結果 : 那么如果我們想要得到如下結果呢?--顯然大家一看就知道我的意思了吧,常規有人一定會union聯合、子查詢什么的吧,有沒有想過其實可以簡單點呀,看看下面的語法:--3select id,COUNT(1)from @twhere id < 3group by all id 結果大家自己運行一下就有答案了。最后后續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,如果以后的項目里有使用的話還是著手修改當前還在使用該功能的應用程序吧。另外還得注意三點:1、CUBE 或 ROLLUP 運算符不能和ALL同時使用。2、如果在訪問遠程表的查詢中還有 WHERE 子句,則該查詢不支持 GROUP BY ALL。3、對于具有 FILESTREAM 屬性的列,GROUP BY ALL將不被支持。

來源:php中文網

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!