精华内容
下载资源
问答
  • 2019-09-07 16:59:50

    区间分组统计查询需要使用到 elt,interval
    一、根据学生的分数段统计各个分数段的学生总数

    create table class (
    id int(11) not null auto_increment,
    score int(11) default 0,
    primary key(id)
    )engine=innodb auto_increment=21 default charset=utf8;

    添加一些数据
    统计各个分数段的学生人数
    比如:统计<50,50-60,60-70,70-80,80-90,90-100的分数区间内的人数
    利用interval划出6个区间,在利用elt函数将6个区间分别返回一个列名,SQL如下:
    select elt(
    interval(score,0,50,60,70,80,90),
    ‘<50’,‘50-60’,‘60-70’,‘70-80’,‘80-90’,‘90-100’
    ) as score_level ,count(*) as counts
    from class
    group by elt(
    interval(score,0,50,60,70,80,90),
    ‘<50’,‘50-60’,‘60-70’,‘70-80’,‘80-90’,‘90-100’
    );

    在这里插入图片描述

    自定义排序:
    select elt(
    interval(score,0,50,60,70,80,90),
    ‘1/<50’,‘2/50-60’,‘3/60-70’,‘4/70-80’,‘5/80-90’,‘6/90-100’
    ) as score_level ,count(*) as counts
    from class
    group by elt(
    interval(score,0,50,60,70,80,90),
    ‘1/<50’,‘2/50-60’,‘3/60-70’,‘4/70-80’,‘5/80-90’,‘6/90-100’
    );
    在这里插入图片描述

    更多相关内容
  • mysql加强(3)~分组(统计)查询

    热门讨论 2022-01-26 21:10:07
    mysql加强(3)~分组(统计)查询

    一、分组(统计) 查询

    1、语法 :

    select [distinct] *| 分组字段1[别名] [,分组字段2[别名],…] | 统计函数

    from 表名 [别名]

    [where 条件(s)]

    [group by 分组字段1[,分组字段2]]

    [having 分组后的过滤条件(可以使用统计函数)]

    [order by 排序字段 asc|desc[,排序字段 asc|desc]];



    2、注意分组的细节:

    ❀ 分组查询:select 后的字段必须是**分组字段**(跟在group by 后面的字段) 或 统计函数字段

    #错误使用分组(统计)查询【查询的字段不是分组字段】
    select empno, count(empno) from emp;
    

    ❀ 不能在where 子句中限制组,即**不能在where子句中使用组函数(统计函数)。**

    #错误使用分组(统计)查询【组函数出现在where的子句中】
    select avg(sal) from emp where avg(sal) > 2000 group by deptno;
    

    ❀ 对分组的结果进行限制(过滤)—使用having进行筛选

    #查询各个部门的平均工资
    select deptno, avg(sal) from emp group by deptno;
    #查询平均工资高于2000的部门和其平均工资 ('平均工资高于2000'是分组之后的筛选条件)
    select avg(sal) from emp group by deptno having avg(sal) > 2000;
    

    ❀ 并列分组:

    • 单列分组:水果分为苹果、香蕉、葡萄。一共分为3个组。

    • 什么是并列分组:水果分为苹果、香蕉、葡萄;然后苹果又可以分为红富士、丑苹果;香蕉又分为芭蕉、小米蕉;葡萄又分为红提、青提。一共分成6个组。

    #查看各个部门和岗位的平均工资
    select deptno, job, avg(sal) from emp group by deptno, job;
    



    ■ sql语句的执行顺序:从哪张表过滤掉不合法数据,然后分组(对分组结果再过滤一下)显示出来,进行排序、分页。

    from where group by having select order by limit


    ■ where 和 having 执行的先后:

    ① where 是在分组之前进行筛选,先过滤掉不合法数据, 在 where 之中不能使用统计函数(组函数)。

    ② having 是在分组之后进行筛选,对组的结果进行过滤。



    在这里插入图片描述

    展开全文
  • 数据库的分组统计查询

    千次阅读 2020-03-28 22:21:52
    对查询结果进行计算或分类汇总 使用分组查询 若要对查询结果进行分类汇总时,需要使用Group by子句 Group by子句将查询结果按某列(或多列)的值分组,值相等的为一组 若未对查询结果分组,聚集函数将作用于...

    使用聚合函数查询

    对查询结果进行计算或分类汇总
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    使用分组查询

    若要对查询结果进行分类汇总时,需要使用Group by子句
    Group by子句将查询结果按某列(或多列)的值分组,值相等的为一组
    若未对查询结果分组,聚集函数将作用于整个查询结果;分组后聚集函数将作用于每一个组
    Having 子句用于对分组结果进行筛选,通常在Group by子句中使用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    查询结果排序

    使用Select查询获取的数据通常是无序的,可使用Order by 子句对查询结果集排序
    Order by子句可以将查询结果按一个或多个列值得大小顺序输出
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Oracle中数据分组统计

    千次阅读 2021-09-30 09:34:34
    一、实现效果 1.1、原表内容 1.2、实现效果 ...③实现报警信息(TYPENAME)内容分组统计,且获取最小开始时间(CreationTimeStart)、最大结束时间(CreationTime)差值(差值保留2位小数).

    一、实现效果

    1.1、原表内容

     1.2、实现效果

    ①实现对报警信息(TYPENAME)内容分组,且对设备编号、报警信息、开始时间排序效果。

    ②实现对报警信息(TYPENAME)内容分组统计,且计算开始时间(CreationTimeStart)、结束时间(CreationTime)差值(对差值保留2位小数)效果。

    ③实现对报警信息(TYPENAME)内容分组统计,且获取最小开始时间(CreationTimeStart)、最大结束时间(CreationTime)差值(对差值保留2位小数)效果。 

    二、实现原理

    2.1、实现思路

    ①使用【Group by】对需要分组的字段分组;

    ②使用【Count】统计个数,【Sum】求和,【min、max】求最小最大;

    ③使用【Order by】对需要排序的字段排序;

    ④基础的sql语句

    //分组的基础SQL执行语句
    SELECT '字段1','字段2','字段3' FROM '表名称' GROUP BY '需分组的字段1','需分组的字段2','需分组的字段3' HAVING '需要判断的字段条件' ORDER BY '需排序的字段' ASC
    
    

    2.2、实现效果的SQL语句

    ①实现对报警信息(TYPENAME)内容分组,且对设备编号、报警信息、开始时间排序SQL.

    	SELECT
    		DeviceNumber,
    		DeviceName,
    		DeviceType,
    		TypeName,
    		DeviceValue,
    		CreationTimeStart,
    		CreationTime 
    	FROM
    			DEVICEALARM 
    		WHERE
    			DeviceNumber IN ( 'C1_02_01' ) 
    			AND TYPENAME LIKE '%1管%' 
    			AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) 
    			AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) 
    		GROUP BY
    			DeviceNumber,
    			DeviceName,
    			DeviceType,
    			TypeName,
    			DeviceValue,
    			CreationTimeStart,
    			CreationTime 
    		ORDER BY
    			DeviceNumber ASC,
    			TYPENAME ASC,
    			CreationTimeStart DESC
    

    ②实现对报警信息(TYPENAME)内容分组统计,且计算开始时间(CreationTimeStart)、结束时间(CreationTime)差值(对差值保留2位小数)效果。

    
    	SELECT
    		DeviceNumber,
    		DeviceName,
    		DeviceType,
    		TypeName,
    		COUNT( TypeName ) AlarmNumber,
    		TO_CHAR( SUM( AffectMinutes ), 'FM9990.00' ) AffectMinutes1 
    	FROM
    		(
    		SELECT
    			* 
    		FROM
    			(
    			SELECT
    				DeviceNumber,
    				DeviceName,
    				DeviceType,
    				TypeName,
    				CreationTimeStart,
    				CreationTime,
    				TO_CHAR( ( ( DA.CreationTime - DA.CreationTimeStart ) * 24 * 60 ), 'FM9990.00' ) AffectMinutes 
    			FROM
    				DEVICEALARM DA 
    			) 
    		WHERE
    			DeviceNumber IN ( 'C1_02_01' ) 
    			AND TYPENAME LIKE '%1管%' 
    			AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) 
    			AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) 
    		) 
    	GROUP BY
    		DeviceNumber,
    		DeviceName,
    		DeviceType,
    		TypeName 
    	ORDER BY
    	TypeName ASC
    

    ③实现对报警信息(TYPENAME)内容分组统计,且获取最小开始时间(CreationTimeStart)、最大结束时间(CreationTime)差值(对差值保留2位小数)效果。

    	SELECT
    		* 
    	FROM
    		(
    		SELECT
    			DeviceNumber DeviceNumber1,
    			DeviceName DeviceName1,
    			DeviceType DeviceType1,
    			TypeName AlarmInfo1,
    			AlarmNumber AlarmNumber1,
    			TO_CHAR( ( ( PerGroupMaxEndTime - PerGroupMinStartTime ) * 24 ), 'FM9990.00' ) AffectMinutes1 
    		FROM
    			(
    			SELECT
    				DeviceNumber,
    				DeviceName,
    				DeviceType,
    				TypeName,
    				COUNT( TypeName ) AlarmNumber,
    				MIN( CreationTimeStart ) PerGroupMinStartTime,
    				MAX( CreationTime ) PerGroupMaxEndTime 
    			FROM
    				(
    				SELECT
    					* 
    				FROM
    					DEVICEALARM 
    				WHERE
    					DeviceNumber IN ( 'C1_02_01' ) 
    					AND TYPENAME LIKE '%1管%' 
    					AND CreationTimeStart BETWEEN TO_DATE( '2021-09-28 08:00:00', 'yyyy-MM-dd hh24:mi:ss' ) 
    					AND TO_DATE( '2021-09-28 19:59:59', 'yyyy-MM-dd hh24:mi:ss' ) 
    				) 
    			GROUP BY
    				DeviceNumber,
    				DeviceName,
    				DeviceType,
    				TypeName 
    			ORDER BY
    				DeviceNumber ASC,
    				TypeName ASC 
    			) 
    		) 
    	WHERE
    		AffectMinutes1 >0
    
    展开全文
  • / -- 定义一个 表/数组类型, 内容是前面定义的那个对象. CREATE OR REPLACE TYPE ty_tbl_str_split IS TABLE OF ty_row_str_split; / -------------------- -- 字符分割函数. -- 参数1: 被分割的源...
  • 在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获取数据表中以分组字段为依据的统计数据。 比如有一个学生选课表,表结构如下: Table: Subject_Selection Subject Semester Attendee ——————...
  • 分组统计查询

    2020-01-27 07:39:01
    分组统计查询 1.统计函数(分组函数) 常用的统计函数: 统计个数:COUNT();根据表中的实际数据量返回结果 求和:SUM()、是针对于数字的统计 最小值:MIN()、各种数据类型都支持 最大值:MAX()、各种数据类型都...
  • 首先根据我业务需求,我需要数据进行按时间分组,这一步可以实现,附上代码:(我使用的是php原生的数据库查询语句)$data = $request->getQueryParams();$from = $data['from'];$to = $data['to'];$res = Plan::...
  • [TOC]1 普通聚合分析1.1 直接聚合统计(1) 计算每个tag下的文档数量, 请求语法:GET book_shop/it_book/_search{"size": 0, // 不显示命中(hits)的所有文档信息"aggs": {"group_by_tags": {// 聚合结果的名称, 需要...
  • 根据某一字段数据进行分组统计

    千次阅读 2019-01-17 09:30:31
    如何根据某一字段数据进行分组统计? 在项目要求中要求实现此页面功能 在这里要求统计公司20GP,40GP,40HC的柜量和TEU情况, 下面是我实现此功能的页面 啊啊,页面设计不好看,虽然实现的内容与要求的有些许...
  • MySQL数据表进行分组查询(GROUP BY)GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组。字段中值相等的为一组。基本的语法格式如下:GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]属性名:是指...
  • ES指定内容分组统计

    千次阅读 2020-03-05 15:09:31
    查询JSON如下: { "query": { "bool": { "filter": [ { "terms": { "T2.keyword": [ “北京”,“天津”,“上海” ] }}, {"range": { ...
  • ORACLE分组查询统计

    千次阅读 2020-12-19 02:37:36
    select flow_id,rw from (select t.flow_id ,rownum as rw from apex_030200....子查询引用只能在查询出的结果中引用,比如子查询没有查出flow_id,外层不能用,另外外层不能引用内层的t3.薪水前三名,内层查出薪水 ...
  • 摘要:C#源码,数据库应用,分组统计,CrystalReport 一个基于C#的分组统计源程序,按类别分组统计图书数据库中的内容,并使用了CrystalReport的部分功能将数据显示出来,这个例子同样适合C#初学者,数据库测试文件在...
  • mysql 分组查询统计数量

    千次阅读 2021-09-23 14:03:34
    方法一: 1、SQL实现如下 SELECT grpType '单位性质类别', count(`grpNo`) '企业客户数' FROM fcgrpinfo GROUP BY grpType 2、查询结果如下 方法二: 1、SQL实现如下 SELECT COALESCE (`grpType`, '总数') '单位...
  • 这篇文章主要为大家详细介绍了SQL Server 分组统计查询(按月、小时分组),具有一定的参考价值,可以用来参考一下。感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!设置AccessCount字段可以根据需求在...
  • 通过javaMongoDB进行分组查询

    千次阅读 2020-10-13 16:55:29
    想要该字段进行分组,这样的话就能查到这个集合中有多少个日期数据。 网上查了两个小时,可算找到了办法。 实现: 需要用到的对象有mongoTemplate以及Aggregation。 public void groupOfMongodb(){ ...
  • 针对字段中某部分内容的指标统计 在使用mongodb进行指标统计的时候可能遇见下面的数据结构 /* 1 */ { "_id" : ObjectId("5edf4b5c64574814bc8ae4ae"), "address" : "河南,信阳", "state" : 0, "remark" : "发送...
  • 实验四 数据库的分组查询统计查询和连接查询 学号 姓名 实验目的 熟练掌握数据查询中的分组统计计算集合连接查询的操作方法 实验内容 使用聚集函数查询分组计算查询集合查询连接查询 实验步骤 一. 使用聚集函数 查询...
  • 《数据库原理与应用》课程实验报告 数据库的组合和统计查询 ...该实验包括统计函数和分组统计函数的使用方法。 3、组合查询实验。 4、计算和分组计算查询的实验。 2.实验过程 创建图书表 create tabl
  • 1 普通聚合分析1.1 直接聚合统计(1) 计算每个tag下的文档数量, 请求语法:GET book_shop/it_book/_search{"size": 0, // 不显示命中(hits)的所有文档信息"aggs": {"group_by_tags": { // 聚合结果的名称, 需要自定义...
  • Mybatis之分组查询

    千次阅读 2022-04-11 17:04:44
    在应用开发中,分组统计是非常经典的需求,在springboot+mybatis+mysql中实现分组统计。 学生信息统计场景,学生包含姓名、性别、年龄、地址等属性。 按性别分组统计数量 按地址分组统计数量 按地址、性别分组统计...
  • 目录一、分组统计1、使用 GROUP BY 子句创建分组2、使用 GROUP BY 子句创建多列分组3、表达式进行分组统计4、在统计中使用 ROLLUP 关键字和 CUBE 关键字5、GROUP BY 子句的 NULL 值处理6、使用 HAVING 子句进行...
  • mysql 怎样统计分组

    千次阅读 2021-01-27 21:15:08
    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$... begin II:=2021-01-16 17:49:22条件查询-模糊匹配PostgreSQL和SQL Server的模糊匹配lik...
  • 在本篇文章里小编给大家分享的是关于Django分组聚合查询实例内容,需要的朋友们可以参考下。
  • 统计查询统计函数: 例1:求学号为S1的学生的总分和平均分  Select sum(score) as TotalSc ore,avg(score) as AveScore from sc where sno=s1 例2:求选修C1课程的最高分和最低分以及两者的差数 Select ...
  • oracle数据库之分组查询

    千次阅读 2021-05-08 11:55:04
    本章内容和大家分享的是数据当中的分组查询分组查询复杂一点的是建立在多张表的查询的基础...分组查询概念什么是分组查询分组查询是按照一定的规则进行分组分组以后数据会聚合,需要使用聚合函数,但是使用聚...
  • 文章目录1、多表查询分组统计(重点)1.1 范例1:查询出每个部门的名称、部门人数、平均工资 ????大家好!我是近视的脚踏实地,这篇文章主要是来学习Oracle的多表查询分组统计      唯有...
  • } 感觉这样写好麻烦,不过最后还好弄出来了,如果有更好的方法请告诉我一下 页面展示: 以上这篇java8 集合 多字段 分组 统计个数代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,679
精华内容 25,871
关键字:

对查询内容进行分组统计