Group by ALL,groupbyall

來源:互聯網
上載者:User

Group by ALL,groupbyall

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針對上面的資料我們可以得到顯而意見的結果 :/*id         ----------- -----------1           22           13           24           15           3(5 行受影響)id         ----------- -----------1           22           1(2 行受影響)*/   那麼如果我們想要得到如下結果呢?/*id         ----------- -----------1           22           13           04           05           0*/--顯然大家一看就知道我的意思了吧,常規有人一定會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將不被支援。


sql語句中的group by要怎使用

group by 屬於彙總函式,查詢時要將被查詢的列彙總起來,例如:

C1 C2 C3
A 1 99
A 2 83
A 3 99
B 3 22
SELECT C1, SUM(C2) FROM T GROUP BY C1;
 
vfp中的sum與group by 的不同

sum 是求和
group by 是分組
給你舉幾個例子以說明:

select 機關,成績 from JBB
* 讀取所有來源資料

select 機關,成績 from JBB group by 機關
* 【機關】每個僅出現一次-不重複,【成績】=最後一條記錄的【成績】

select 機關,sum(成績) from JBB
* 就1條記錄,【機關】=最後一條記錄的【機關】,成績=表裡面所有【成績】之和

select 機關,sum(成績) from JBB group by 機關
* 【機關】每個僅出現一次-不重複,【成績】=對應每個【機關的成績】之和
參考資料:這樣子你就明白了吧
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.