首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL中Group By 的常见使用方法.

解释: 根据(by)一定的规则进行分组(Group) 所以就是根据题中的name进行分组, 然后把name相同的数量为10的记录都查找出来.  示例: 表结构: ? 执行结果: ?...3,实例说明 示例1 SQL语句如下: select category, sum(count) as 数量之和 from groupbyDemo group by category 结果如下: ?...示例2 SQL语句如下: SELECT category, SUM(COUNT) AS 数量之和, summary FROM groupByDemo GROUP BY category ORDER BY...5, Having与Where的区别 (1)where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行...示例1 SQL代码: SELECT category, SUM(COUNT) AS 数量之和 FROM groupByDemo GROUP BY category HAVING SUM(COUNT) >

2K130

SQL中Group By的使用,以及一些特殊使用方法

在Access中不可以使用“order by 数量之和 desc”,但在SQL Server中则可以。...SQL Server中虽然支持“group by all”,但Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。...Access中是不支持“Group By All”的,但Access中同样支持多列分组,上述SQL Server中的SQL在Access可以写成 select 类别, 摘要, sum(数量) AS 数量之和...子句必须与order by子句用一起使用 compute...by与group by相比,group by 只能得到各组数据的统计结果,而不能看到各组数据 在实际开发中compute与compute...by的作用并不是很大,SQL Server支持compute和compute by,而Access并不支持 SQL compute by 的使用 https://www.cnblogs.com/Gavinzhao

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql COUNT() 函数详解

    ,COUNT() 统计行数通常包括 NULL 和重复项,比如SELECT COUNT(*) FROM sys_post;统计结果如图所示,满足我们的预期,统计了包括NULL在内的数据数量COUNT(1)...下面我们再利用 COUNT(1) 来统计 sys_post表的数据量,其实 COUNT(1) 和 COUNT(*) 差不多,统计表中满足条件的所有数据行数,包括 NULL和重复项,比如SELECT COUNT...(1) FROM sys_post;统计结果如图所示,和我们上面使用 COUNT(*)的统计结果是一样的,也是包含了NULL在内的数量COUNT(column)还有一种统计数据的方法,就是通过 COUNT...COUNT(*) 与 GROUP BY除了单纯的统计数量外,还可以结合 group by 来分组统计不同情况的数量,这里统计不同 create_by 的数据行数,比如SELECT create_by,COUNT...(*) FROM sys_post GROUP BY create_by;统计结果如图所示COUNT(*) 与 GROUP BY 和 HAVING当然,除了分组统计指定 column 的数量的情况,还会遇到增加统计数量筛选条件的情况

    27510

    你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)

    在项目中经常需要从基础数据中提取数据进行处理后显示给老板或客户一些报表,这时数据量大,涉及表多,简单的表处理SQL无法满足,且需要重复使用,这时就要使用存储过程来处理大数据和复杂的业务逻辑。...由于数据库数据经过翻倍,数据库用例数据数量有点大,请要下载的可以在此下载,然后自行还原数据库,传送门:链接:http://pan.baidu.com/s/1o6MUnay 密码:swi4 需要经过编写SQL...那来看看整个流程思路,先过滤数据: 查找该项目的所有产品放进临时表A 查找该项目的所有产品的销售明细放进临时表B 从临时表B中查找指定年的销售明细放进临时表C 从表C统计当前年度合计列,各产品的所有面积...以上数据中我们的 累积销售面积、累积销售面积比例,累积销售金额三项 之前都用0代替,现在我们来统计。...这里用到的列转行,共有7列,技巧为用code来代表每个类型,也用于显示排序,最终数据为每个产品每个月都有7行数据。这里是不是有了最终结果的雏形?   至此 你真的会玩SQL吗?

    1.7K80

    使用Mysql中的concat函数或正则匹配来快速批量生成用于执行的sql语句

    实例演示 以下面的场景作为示例进行讲解: 学生表: 一张简单的学生表,其中记录了学生ID、名称、班级ID 借阅表: 一张简单的借阅表,当中记录了借阅的书籍和对应借阅学生ID,但是每行中的学生名称和班级...目标:快速生成update语句将book_borrow表中的student_name和class_id更新为正确的数据。...; 把update需要用的变量全部使用select查询出来。即,根据book_borrow表中的student_id,去student表中查出name和class_id。 select a.id,b....,如下图所示: 最后我们把sql拷出来直接执行就可以了。...= \3 where id = 1; 效果图如下: 上面两种方式都可以达到我们的目的,但是推荐使用方案一,原因就在于简单快捷。

    99810

    Oracle分组函数之ROLLUP用法

    rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select...b where a.deptno = b.deptno group by a.dname, b.job union all//各部门的工资之和 select a.dname, null, sum(...假如再加个时间统计的,可以用下面sql: select to_char(b.hiredate, 'yyyy') hiredate, a.dname, b.job, sum(b.sal) from scott.dept...cube函数是维度更细的统计,语法和rollup类似 假设有n个维度,那么rollup会有n个聚合,cube会有2n个聚合 rollup统计列 rollup(a,b) 统计列包含:(a,b)、(a)...、() rollup(a,b,c) 统计列包含:(a,b,c)、(a,b)、(a)、() … cube统计列 cube(a,b) 统计列包含:(a,b)、(a)、(b)、() cube(a

    1.5K30

    Oracle应用之分组函数之ROLLUP用法

    rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select...a, scott.emp b where a.deptno = b.deptno group by a.dname, b.job union all//各部门的工资之和 select a.dname...by rollup(a.dname, b.job); 假如再加个时间统计的,可以用下面sql: select to_char(b.hiredate, 'yyyy') hiredate, a.dname...by cube(a.dname, b.job); cube函数是维度更细的统计,语法和rollup类似 假设有n个维度,那么rollup会有n个聚合,cube会有2n个聚合 rollup统计列...rollup(a,b) 统计列包含:(a,b)、(a)、() rollup(a,b,c) 统计列包含:(a,b,c)、(a,b)、(a)、() … cube统计列 cube(a,b) 统计列包含

    31520

    1.24 当前行减上一行,累计还原为当期

    有一张系统输出的事实表,是按照门店和日期时间(连续的以1小时为间隔)生成的当天的累计数量,现需要在PowerQuery中还原成每个日期时间对应的当期的数量。...解决方案优先考虑在上游系统中对数据源进行调整;在PowerQuery中,按门店、日期时间排序,然后按门店取出累计列当前行的上一行数据,然后用累计数字减去上一行累计数字就得到了当期数字。...STEP 3 点击待处理列标题右侧的展开按钮,去掉门店的挑勾以免字段重复,去掉使用原始列名作为前缀的挑勾以保持列名的简洁性。...STEP 5 点击菜单栏添加列下的自定义列,在跳出的对话框中输入如下代码,增加一个数量列。这里调取了上一步骤的表中的门店与当前行门店相等、序号等于当前行序号-1的累计数量列的值。...]else [累计数量])STEP 6 删除不需要的列,去掉累计列,保留数量列,修改数据类型,如下:

    5300

    模拟 ROW_NUMBER() 函数

    原表和临时表一关联,临时表的主键就可以作为关联的结果的序号展示。 这种做法性能很好,不过只能应用于没有分组的场景。...用户变量 使用用户变量可以模拟大多数的窗口函数的功能,如果要实现上面图2 的效果,使用用户变量的写法要这样: SELECT rn, empno, ename, job, mgr,...: 排序,窗口函数里面用到分组、排序的字段,在使用用户变量的 SQL 中一定会出现在排序语句里面,而且是用于分组的字段排在前面; 赋值的表达式是 :=,比较符号用 = ,千万不能混用。...BY a.empno ORDER BY deptno,1 结果中的序号是通过 count(*) 生成,简单介绍一下生成序号的算法: 取出一列数据,遍历列里面的每个数据,统计列中每个数小于或者等于它的个数...只要比较的字段没有重复数据,生成的序号就还是连续的。 标量子查询 不喜欢用外连接,也可以通过标量子查询生成序号。

    1.1K20

    初学者SQL语句介绍

    Between 在某个取值范围内     Like 匹配某个模式     In 包含在某个值列表中     SQL中的等于和不等于等操作符与VB中的意义和使用相同     例子:    ...☆创建的查询产生了某些计算或合计列,需要对之进行命名。     不管是什么原因对字段命以别名,在 SQL 中都可以容易地使用 As 子句做得。    ...合并查询     合并查询( Union Query )用于合并具有相同字段结构的两个表的内容,如果想在一个结果集中显示多个记录源中的不相关的记录时,这十分有用。    ...注意:缺省情况下,合并查询不会返回重复记录(如果记录归档系统在把记录拷到归档表中后不将相应的记录删除,这时该功能就有用了),可以加上 All 关键字而让合并查询显示重复记录。    ...在 SQL Server 中,可以使用两种连接语法形式,一种是 Ansi 连接语法形式,这是连接用在 From 子句中,另外一种是 SQL Server 连接语句形式,这是连接用在 Where 子句中。

    1.7K30

    SQL优化指南

    包含union或者子查询的主查询 即外层的查询     union UNION中的第二个或者后面的查询语句     subquery 一般子查询中的子查询被标记为subquery,也就是位于select...possible_keys:表示查询时可能使用的索引 key:表示实际使用的索引 key_len:使用到索引字段的长度 rows:扫描数量 Extra:执行情况的说明和描述,包含不适合在其他列中显示但是对执行计划非常重要的额外信息...COUNT()是一个特殊的函数,有两种不同的作用,它可以统计某个列值的数量,也可以统计行数。   在统计列值的时候要求列值是非空的,也就是不统计null。   ...1.创建合适的索引减少filesort的出现。   2.查询时尽量只使用必要的字段,select 具体字段的名称,而不是select * 选择所有字段,这样可以减少排序区的使用,提高SQL性能。...如果你要在order by后面加group by ,那结果执行的SQL是不是这样:select * from tb order by ... group by ... order by ... ?

    80020

    SQL优化指南

    primary 包含union或者子查询的主查询 即外层的查询 union UNION中的第二个或者后面的查询语句 subquery 一般子查询中的子查询被标记为subquery...possible_keys:表示查询时可能使用的索引 key:表示实际使用的索引 key_len:使用到索引字段的长度 rows:扫描数量 Extra:执行情况的说明和描述,包含不适合在其他列中显示但是对执行计划非常重要的额外信息...COUNT( )是一个特殊的函数,有两种不同的作用,它可以统计某个列值的数量,也可以统计行数。 在统计列值的时候要求列值是非空的,也就是不统计null。...创建合适的索引减少filesort的出现。 查询时尽量只使用必要的字段,select 具体字段的名称,而不是select * 选择所有字段,这样可以减少排序区的使用,提高SQL性能。...如果你要在order by后面加group by ,那结果执行的SQL是不是这样:select * from tb order by ... group by ... order by ... ?

    85320

    事件统计 | performance_schema全方位介绍

    事务聚合统计规则  * 事务事件的收集不考虑隔离级别,访问模式或自动提交模式  * 读写事务通常比只读事务占用更多资源,因此事务统计表包含了用于读写和只读事务的单独统计列  * 事务所占用的资源需求多少也可能会因事务隔离级别有所差异...但是:每个server可能是使用相同的隔离级别,所以不单独提供隔离级别相关的统计列 PS:对这些表使用truncate语句,影响与等待事件类似。...performance_schema从使用的内存大小、相关操作数量、高低水位(内存一次操作的最大和最小的相关统计值)。 内存大小统计信息有助于了解当前server的内存消耗,以便及时进行内存调整。...表中没有像等待事件、阶段事件、语句事件与事务事件那样的单独配置项。..."配置项关闭,所有的统计表的统计条目都不执行统计(统计列值为0); 内存事件在setup_consumers表中没有独立的配置项,且memory/performance_schema/* instruments

    1.9K31

    数据库中的having语句_sql的having语句

    数据库查询语句 HAVING的用法 HAVING语句通常与GROUP BY子句及聚集函数COUNT,AVG,SUM,MAX,MIN语句联合使用,用来过滤由GROUP BY语句返回的记录集,通常跟在GROUP...如果未对查询结果分组,聚集函数将作用于整个查询结果。分组后聚集函数将作用于每一个组,即每一组都有一个函数值。...)求一列值中的最小值 HAVING使用举例 例一 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区 SELECT region, SUM(population), SUM...SELECT Class SUM(grade) FROM department GROUP BY Class HAVING SUM(grade)> 75 含有HAVING子句的SQL语句执行顺序如下...: (1)where子句查找符合条件的数据; (2)使用group by 子句对数据进行分组; (3)对每个分组运行聚集函数计算; (4)用having 子句去掉不符合条件的组。

    2.1K30

    Oracle ROLLUP和CUBE 用法

    除了使用GROUPING函数,还可以使用GROUPING_ID来标识GROUP BY结果。...area,month,sum(money) from SaleOrder group by area,month 然后广州,深圳的合计和所有地区合计都需要在程序里自行累计 1.其实可以使用如下SQL:...3.如果使用Cube(area,month)而不是RollUp(area,month),除了获得每个地区的合计之外,还将获得每个月份的合计,在报表最后显示。...4.Grouping让合计列更好读 RollUp在显示广州合计时,月份列为NULL,但更好的做法应该是显示为"所有月份" Grouping就是用来判断当前Column是否是一个合计列,1为yes,然后用...还是用例子说话比较好. 3.2 Row_Number 和 Rank, DENSE_Rank 用于选出Top 3 sales这样的报表 当两个业务员可能有相同业绩时,就要使用Rank和Dense_Rank

    1.2K10

    事件统计 | performance_schema全方位介绍

    事务聚合统计规则  * 事务事件的收集不考虑隔离级别,访问模式或自动提交模式  * 读写事务通常比只读事务占用更多资源,因此事务统计表包含了用于读写和只读事务的单独统计列  * 事务所占用的资源需求多少也可能会因事务隔离级别有所差异...但是:每个server可能是使用相同的隔离级别,所以不单独提供隔离级别相关的统计列 PS:对这些表使用truncate语句,影响与等待事件类似。...performance_schema从使用的内存大小、相关操作数量、高低水位(内存一次操作的最大和最小的相关统计值)。 内存大小统计信息有助于了解当前server的内存消耗,以便及时进行内存调整。...表中没有像等待事件、阶段事件、语句事件与事务事件那样的单独配置项。..."配置项关闭,所有的统计表的统计条目都不执行统计(统计列值为0); 内存事件在setup_consumers表中没有独立的配置项,且memory/performance_schema/* instruments

    1.4K10

    【学到就是赚到】十分钟带你重温MySQL基础语法!

    表中user_name中名称很多重复,重复的名称我们只想它显示一个就可以,则可以使用distict select distinct user_name from user1; 未使用distinct关键字去重之前的数据...* MAX聚合函数 定义: 用于统计列中的最大值,NULL值的列不在计算范围(注意:MAX 也可用于文本列,以获得按字母顺序排列的最高值)。...用于统计列中的最小值,NULL值的列不在计算范围(注意:MIN也可用于文本列,以获得按字母顺序排列的最小值)。...) 说明: 有些同学会发现使用group by关键字时,如果select后面的字段不出现在group by后面会报错,而有些同学又可以,其实原因与数据库的sql_mode有关,**如果sql_mode...** 解决: 使用select @@sql_mode查询sql_mode的值,如果包含only_full_group_by关键字,可以使用:set @@sql_mode=xxx将only_full_group_by

    47931

    精通Excel数组公式019:FREQUENCY函数的威力

    excelperfect 在数据库中,表的第一列通常是称作为主键或唯一标识符的唯一值列表,用于验证为每个唯一标识符收集的数据是否位于一个且只有一个位置。在唯一值列表中没有重复值。...然而,在Excel中,原始数据经常来自于带有许多重复值的大数据集。如果想要使用公式统计唯一值数量或者提取唯一值列表,由于没有内置函数能够完成这两项任务,因此必须使用数组公式。...示例1:统计唯一值 如下图1所示,想要统计单元格区域A3:A8中唯一发票编号的数量。 ? 图1:统计唯一的发票数 这里使用了两个公式,都可以得到想要的结果。...示例2:统计唯一的文本值或混合数据 如下图2所示,显示了一个有重复的员工姓名的时间追踪器列表,想要从单元格区域C3:C9中统计出独立的员工姓名数量。 ?...图4:统计含有空格的混合值区域的数据唯一值数 示例3:统计满足多个条件的唯一值 有时,可能要有条件地统计列表中的唯一元素。如下图5所示,允许多次投票,因此统计结果中有重复值。

    97920
    领券