rollup

SELECT employee_id,department_id,job_id,SUM(salary)

FROM   employees

WHERE  department_id <60

GROUP  BY ROLLUP (department_id,job_id,employee_id);

 执行n+1次分组然后union,顺序是employee_id;job_id;department_id;空一共四次(从右至左每次以一个分组最后不分组求一次总和)

nothing

SELECT employee_id,department_id,job_id,SUM(salary)

FROM   employees

WHERE  department_id <60

GROUP  BY department_id,job_id,employee_id;

按顺序检测,先按department_id分组计算然后一个部门的然后这个部门内job_id分组计算一次然后employee_id再分组计算一次,然后接着下一个部门分组……..执行下去 注:每次三个都同时被gruoping了

cube

SELECT employee_id,department_id,job_id,SUM(salary)

FROM   employees

WHERE  department_id <60

GROUP  BY CUBE (department_id,job_id,employee_id);

执行2的n次方次分组计算,排列组合;一般用的时候都带order by排序确定谁先显示

Grouping

以使用Grouping 函数; 没有被Grouping到返回1,否则返回0

SELECT employee_id,department_id,job_id,SUM(salary),GROUPING(employee_id),GROUPING(department_id),GROUPING(job_id)

FROM employees

WHERE department_id < 60

GROUP BY department_id,job_id,employee_id;

SELECT employee_id,department_id,job_id,SUM(salary),GROUPING(employee_id),GROUPING(department_id),GROUPING(job_id)

FROM employees

WHERE department_id < 60

GROUP BY ROLLUP (department_id,job_id,employee_id);

SELECT employee_id,department_id,job_id,SUM(salary),GROUPING(employee_id),GROUPING(department_id),GROUPING(job_id)

FROM employees

WHERE department_id < 60

GROUP BY CUBE (department_id,job_id,employee_id);

GROUPING SETS

使用Grouping Set 来代替多次UNION

SELECT department_id,job_id,manager_id,AVG(salary)

FROM   employees

GROUP  BY GROUPING SETS ((department_id,job_id),(job_id,manager_id));

相当于

SELECT department_id,job_id,manager_id,AVG(salary)

FROM   employees

GROUP  BY  (department_id,job_id);

UNION

SELECT department_id,job_id,manager_id,AVG(salary)

FROM   employees

GROUP  BY GROUPING SETS (job_id,manager_id);

sql group句子的更多相关文章

  1. SQL GROUP BY 语句

    合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 ...

  2. LINQ TO SQL ——Group by

    原文:LINQ TO SQL --Group by 分组在SQL中应用的十分普遍,在查询,统计时都有可能会用到它.LINQ TO SQL中同样具备group的功能,这篇我来讲下LINQ TO SQL中 ...

  3. SQL-W3School-函数:SQL GROUP BY 语句

    ylbtech-SQL-W3School-函数:SQL GROUP BY 语句 1.返回顶部 1. 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROU ...

  4. [源码解析] GroupReduce,GroupCombine 和 Flink SQL group by

    [源码解析] GroupReduce,GroupCombine和Flink SQL group by 目录 [源码解析] GroupReduce,GroupCombine和Flink SQL grou ...

  5. SQL GROUP BY 中的TOP N

    一个示例表test(select * from test): id gid    age    username1 1      11     zhangsan2 1      13     zhan ...

  6. sql group by 理解

    order by是对字段进行排序,group by 是对字段进行分类,在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用组函数返回每一个组的汇总信息,另外,可以使用ha ...

  7. SQL group by分组查询(转)

    本文导读:在实际SQL应用中,经常需要进行分组聚合,即将查询对象按一定条件分组,然后对每一个组进行聚合分析.创建分组是通过GROUP BY子句实现的.与WHERE子句不同,GROUP BY子句用于归纳 ...

  8. C# Linq to SQL — Group by

    需求是需要统计数据库中表某一列的总数量,同时以List的形式返回到UI层. Linq to SQL中的Group by用法如下: IList<Unit.HandleCountClass> ...

  9. Linq to SQL -- Group By、Having和Exists、In、Any、All、Contains

    Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...

随机推荐

  1. [LeetCode] Tag Validator 标签验证器

    Given a string representing a code snippet, you need to implement a tag validator to parse the code ...

  2. MySQL之存储过程和函数

    存储过程和函数: 1.创建存储过程和函数: 存储过程: delimiter $$ create procedure proc_name() BEGIN 查询语句; // 记得加分号 END $$ de ...

  3. [Luogu 3901]Difference

    Description Input Output Sample Input 4 2 1 2 3 2 1 3 2 4 Sample Output Yes No HINT 题解 莫队.加个标记数组维护该数 ...

  4. Codeforces Round #460 D. Karen and Cards

    Description Karen just got home from the supermarket, and is getting ready to go to sleep. After tak ...

  5. WISCO信息组NOIP模拟赛-部落冲突

    传送门 首先肯定考虑树剖,这里没有要求区间加,所以可以用树状数组维护,不会卡常的 这里是边权,可以转化为点权:让每条边连接的较深的节点的点权等于边权即可,然后计算的时候减去lca #include&l ...

  6. bzoj4559[JLoi2016]成绩比较 容斥+拉格朗日插值法

    4559: [JLoi2016]成绩比较 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 261  Solved: 165[Submit][Status ...

  7. Android毕业设计-微圈

    勤拂拭软件出品,必属精品 : 勤拂拭软件 去年做了一个类似于我的朋友圈的项目,主要功能就是用户可以实时发表自己的动态,好友可以评论点赞什么的,可以建群,聊天啊,拉黑啊,反正是一个不错的社交软件,包含服 ...

  8. mycat 1.6 简单的操作实例

    环境: centos7.4 + mysql5.7.20 + mycat1.6单台主机上安装了5台mysql_5.7.20 实例(3306,3307,3308,3309,3310)3306为独立实例 ( ...

  9. Docker学习笔记【一】

    [本篇学习笔记来源于 Docker 从入门到实践] 1.什么事Docker?[What] Docker在容器的基础上,进行了进一步的封装,从文件系统.网络互联到进程隔离等,极大的简化了容器的创建和维护 ...

  10. 选项卡js版封装

    以下是封装函数: // id:最外边大盒的id名function tab(id,ev){                var oWrap = document.getElementById(id); ...