高级聚合函数-CUBE

来源:互联网 发布:java三级证书有用吗 编辑:程序博客网 时间:2024/05/23 23:20

     CUBE(args list)  按照参数的组合分组,

       GROUP BY CUBE(a,b,c)      abc , ab,ac,db,a,b,c,全表

    SELECT year_id,month_id,day_id,SUM(sales_value)
    FROM sales_tab
    GROUP BY CUBE(year_id,month_id,day_id)

   abc: 同年同月通同日的,分一个组

   ab,同年同月的 分一个组

   ac:同年同日的 分一个组

   bc:同月同日的

   a,年

   b,月

   c,日

  全表:统计

     但是这个例子中有许多没意义的,就说有这么一种方法,在以后中如果用这个需求,可以用CUBE()




     GROUPING SETS():每个参数是一种分组方式,然后将这些分组统计后并在一个结果集中显示

     仅查看每天与每月的营业额

SELECT year_id,month_id,day_id,SUM(sales_value)
FROM sales_tab
GROUP BY 
   GROUPING SETS((year_id,month_id,day_id),--每天
                    (year_id,month_id) --每月
                                            )     

    2010 1 1 175.38
2010 1 2 37.51
2010 1 4 56.28
2010 1 5 64.44
2010 1 6 158.19
2010 1 7 112.64
2010 1 9 80.51
2010 1 10 204.83
2010 1 13 73.26
2010 1 14 42.49
2010 1 15 67.38
2010 1 17 66.30
2010 1 19 20.52
2010 1 20 22.42
2010 1 23 160.03
2010 1 25 74.56
2010 1 26 110.13
2010 1 27 14.74
2010 1 28 29.10
2010 1 29 45.24
2010 1 30 52.67
2010 1 1668.62

  只贴出1月的  其他的是一样的

原创粉丝点击