qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          SQL數據排序與分組

          一、為什么要對數據進行分組
            數據分組:是按照邏輯次序把具有重復值的字段進行合并。
            二、GROUP BY子句
            語法:
          SELECT column1,column2
          FROM table1,table2
          WHERE conditions
          GROUP BY column1,column2
          ORDER BY column1,column2;
            1、分組函數
            典型的分組函數—也就是用于GROUP BY子句對數據進行劃分的函數—包括AVG、MAX、MIN、SUM、COUNT。
            2、對選中的數據進行分組
            數據分組是個簡單的過程。被選中的字段(查詢中SELECT之后的字段列表)才能在GROUP BY子句里引用;如果字段在SELECT語句里找不到,就不能用于GROUP BY子句。
            注:在對數據進行分組時,分組字段的次序不一定要與SELECT子句里字段次序相同。
            3、創建分組和使用匯總函數
            SELECT語句在使用GROUP BY子句時必須滿足一定條件。特別是被選中的字段必須出現在GROUP BY子句里,除了匯總函數。
            注:具體數值在排序時位于NULL值之前,字符型在排序時位于NULL值之后。
            4、以整數代表字段名稱
            像ORDER BY子句一樣,GROUP BY子句里也可以用整數代表字段名稱。
            三、GROUP BY和ORDER BY
            ORDER BY子句專門用于對查詢得到的數據進行排序,GROUP BY子句也把查詢得到的數據排序為適當分組的數據,因此,GROUP BY子句也可以像ORDER BY子句那樣用于數據排序。
            使用GROUP BY子句實現排序操作的區別與缺點:
            1、所有被選中的、非匯總函數的字段必須列在GROUP BY子句里;
            2、除非需要使用匯總函數,否則使用GROUP BY子句進行排序通常是沒有必要的。
            四、CUBE和ROLLUP語句
            ROLLUP語法:
            GROUP BY ROLLUP(ordered column list of grouping sets)
            MySQL ROLLUP語法:
            GROUP BY order column list of grouping sets WITH ROLLUP
            ROLLUP語句的工作方式:
            1、在完成了基本的分組數據匯總以后,
            2、按照從右向左的順序,每次去掉字段列表中的最后一個字段,再對剩余的字段進行分組統計,并將獲得的小計結果插入返回表中,被去掉的字段位置使用NULL填充。
            3、最后,再對全表進行一次統計,所有的字段位置均使用NULL填充。
            CUBE語法:
            GROUP BY CUBE(column list of grouping sets)
            CUBE語句在SQL Server和Oracle中都可以使用,MySQL尚不支持該語句。
            CUBE語句的工作方式:
            1、它對分組列表中的所有字段進行排列組合,并根據每一種組合結果,分別進行統計匯總。    2、最后,CUBE語句也會對全表進行統計。
            五、HAVING子句
            HAVING子句必須跟在GROUP BY子句之后,在ORDER BY子句之前。
          語法:
          SELECT column1,column2
          FROM table1,table2
          WHERE contidions
          GROUP BY column1,column2
          HAVING conditions
          ORDER BY column1,column2;

          posted on 2014-06-03 09:56 順其自然EVO 閱讀(221) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 富源县| 永州市| 玉溪市| 铁岭县| 嵊州市| 电白县| 临沧市| 北辰区| 芜湖县| 新建县| 云阳县| 西宁市| 青海省| 中超| 新营市| 澄城县| 理塘县| 平潭县| 昌平区| 泸州市| 新泰市| 固安县| 眉山市| 页游| 南澳县| 兴隆县| 平顶山市| 黄冈市| 迭部县| 浙江省| 海口市| 玛多县| 金坛市| 水城县| 泽普县| 囊谦县| 武山县| 曲周县| 永吉县| 朝阳市| 孝义市|