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

MySQL(五)汇总和分组数据

vend_id1003产品,avg_price中返回供应商产品平均值; PS:avg()只能用来确定特定数值列平均值,而且列名必须作为函数参数给出,为了获得多个列平均值,必须使用多个avg...max()用来返回任意列中最大值,包括返回文本列最大值;但用于文本数据时,如果数据按相应列排序,max()返回最后一行(max()函数忽略列值null行) 4、min()函数 min()返回指定列最小值...列最小值; PS:MySQL允许min()用来返回任意列中最小值,包括返回文本列最小值;但用于文本数据时,如果数据按相应列排序,min()返回最前面的行(min()函数忽略列值null行)...(sum()函数忽略列值null行) 6、distinct与聚集函数 MySQL5.0.3以及之后版本,聚集函数和distinct可以搭配使用,比如: ①对所有的行执行计算,指定all参数或不给参数...如果分组列中具有null值,null将作为一个分组返回(如果列中有多行null值,他们将分为一组); ⑥group by子句必须出现在where子句之后,order by子句之前; PS:使用with

4.7K20

MySQL调优系列——MySQL常用优化技巧

SQL优化原因: 性能低、执行时间太长、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲、线程数) system>const>eq_ref>ref>range>index...五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到字段上若存在索引,索引将被列出,但不一定被查询使用(查询可以利用索引,如果没有任何索引显示 null)...这意味着在possible_keys中某些键实际上不能按生成表次序使用。 如果列是NULL,则没有相关索引。...如果是这样,创造一个适当索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用键(索引),必然包含在possible_keys中 如果没有选择索引,键是NULL...=’女’ 更新非常频繁字段不适合创建索引    select * from order_copy where order_state=’未付款’ 不会出现在WHERE句中字段不该创建索引

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

SQL必知必会总结2-第8到13章

(*):不管是空值(NULL)还是非空值,都会统计进去 count(column):对特定列进行计数,会忽略NULL值 SELECT COUNT(*) AS num_cust FROM Customers...,COUNT()函数会忽略指定列行,但是如果COUNT()函数使用是星号,则不会忽略 3、MAX()/MIN()函数 返回指定列中最大值或者最小值 SELECT MAX(prod_price...WHERE order_num = 20005; 笔记:SUM()函数会自动忽略NULL行 聚集不同值 上面的5个聚集函数都可以如下使用: 对所有的行执行计算,指定ALL参数或不指定参数(...,可以对分组进行嵌套 GROUP BY子句中列出每一列都是检索列或者有效表达式(但是不能是聚集函数) 如果在SELECT中使用表达式,必须在GROUP BY子句中使用相同表达式,而不是使用别名...除了聚集函数外,SELECT语句中每列都必须在GROUP BY子句中列出 如果分组中包含具有NULL行,NULL将作为一个分组返回;如果列中出现多个NULL,它们将分成一个组 GROUP BY子句必须在

2.3K21

Hive3查询基础知识

DELETE FROM tablename [WHERE expression]; 如果gpa列1或0,请从学生表中删除所有数据行。...外部查询是包含内部查询主要查询。WHERE句中查询包含查询谓词和谓词运算符。谓词是计算布尔值条件。查询中谓词还必须包含谓词运算符。谓词运算符指定在谓词查询中测试关系。...如果us_census表至少一行中年值与transfer_payments表中年值匹配,谓词对于transfer_payments表中一行返回true。...查询限制 为了有效地构造查询,您必须了解WHERE句中查询限制。 • 查询必须出现在表达式右侧。 • 不支持嵌套子查询。 • 单个查询只能有一个查询表达式。...您已在hive-site.xml文件中将以下参数设置column,以启用带引号标识符: 在hive-site.xml 文件中将hive.support.quoted.identifiers 配置参数设置

4.6K20

mysql优化概述

MySQL参数设置 通用配置 max_connections : MySQL能创建最大连接数,如果数据库并发量比较大,建议调高此值,以增加并行连接数量,当然连接数越多,由于MySQL会为每个连接创建连接缓冲区...select_type属性,代表着这个小查询在整个大查询中查询类型,select_type取值: 名称 描述 SIMPLE 查询语句中不包含UNION或者查询 PRIMARY 对于包含UNION...unique_subquery: 类似于两表连接中被驱动表eq_ref访问方法,unique_subquery是针对在一些包含IN查询查询语句中如果查询优化器决定将IN查询转换为EXISTS查询...,那么列实际占用最大存储空间就是100 × 3 = 300个字节 如果索引列可以存储NULL值,key_len比不可以存储NULL值时多1个字节 对于变长字段来说,都会有2个字节空间来存储变长列实际长度...Using where : 使用全表扫描来执行对某个表查询,并且语句WHERE句中有针对搜索条件 Using filesort: 排序操作无法使用到索引,只能在内存中(记录较少时候)或者磁盘中

52220

mysql优化概述

MySQL参数设置 通用配置 max_connections : MySQL能创建最大连接数,如果数据库并发量比较大,建议调高此值,以增加并行连接数量,当然连接数越多,由于MySQL会为每个连接创建连接缓冲区...select_type属性,代表着这个小查询在整个大查询中查询类型,select_type取值: 名称 描述 SIMPLE 查询语句中不包含UNION或者查询 PRIMARY 对于包含UNION...unique_subquery: 类似于两表连接中被驱动表eq_ref访问方法,unique_subquery是针对在一些包含IN查询查询语句中如果查询优化器决定将IN查询转换为EXISTS查询...,那么列实际占用最大存储空间就是100 × 3 = 300个字节 如果索引列可以存储NULL值,key_len比不可以存储NULL值时多1个字节 对于变长字段来说,都会有2个字节空间来存储变长列实际长度...Using where : 使用全表扫描来执行对某个表查询,并且语句WHERE句中有针对搜索条件 Using filesort: 排序操作无法使用到索引,只能在内存中(记录较少时候)或者磁盘中

44810

【数据库】03——初级开发需要掌握哪些SQL语句

6 空值 空值给包括算数运算、比较运算和集合运算在内关系运算带来了特殊问题。 比如,如果算术表达式任一输入值空,该算术表达式(如+,-,*,/)结果空。 对比较运算,这也是一个问题。...group by子句中属性,如果出现在select子句中,它只能作为聚集函数参数。...7.4 对空值和布尔值聚集 考虑如下查询: select sum(salary) from instructor; 如果有教师薪资是null,SQL将忽略其值。...在包含了查询查询中,在相关名称上可以应用作用域规则,根据此规则,在一个查询中只能使用此查询本身定义,或者包含此查询任何查询中定义相关名称,如果一个相关名称既在查询中局部定义,有在包含查询查询中全局定义...8.5 from子句中查询 前面的查询都是在where句中使用,下面介绍在from子句中使用查询。

3.5K31

mybatis常用动态sql标签

: id: resultMap 标志 type:返回值类名,此例中返回 Studnet 类 标签: id:用于设置主键字段与领域模型属性映射关系,此处主键 ID,对应 id。...动态 sql 拼接 if 标签 if 标签通常用于 WHERE 语句、UPDATE 语句、INSERT 语句中,通过判断参数值来决定是否使用某个查询条件、判断是否更新某一个字段、判断是否插入某个字段值...= '' "> AND hobby = #{hobby} 当 name 值 null 时,查询语句会出现 “WHERE AND” 情况,解决情况除了将...这个“where”标签会知道如果它包含标签中有返回值的话,它就插入一个‘where’。此外,如果标签返回内容是以 AND 或 OR 开头它会剔除掉。...当在 update 语句中使用 if 标签时,如果最后 if 没有执行,或导致逗号多余错误。使用 set 标签可以将动态配置 set 关键字,和剔除追加到条件末尾任何不相关逗号。

1.8K10

mybatis常用标签,详细总结

: 主标签: id:resultMap标志 type: 返回值类名,此例中返回Studnet类 标签: id:用于设置主键字段与领域模型属性映射关系,此处主键ID,对应id。...MyBatis提供了choose 元素,按顺序判断when中条件出否成立,如果有一个成立,choose结束。当choose中所有when条件都不满时,执行 otherwise中sql。...这个“where”标签会知道如果它包含标签中有返回值的话,它就插入一个‘where’。此外,如果标签返回内容是以AND 或OR 开头它会剔除掉。...,如果有一个参数null,都会导致错误。...当在update语句中使用if标签时,如果最后if没有执行,或导致逗号多余错误。使用set标签可以将动态配置set关键字,和剔除追加到条件末尾任何不相关逗号。

1.6K30

《SQL必知必会》万字精华-第1到13章

如果表中列可以作为主键,它必须满足: 任意两行都不具有相同主键值(主键列不允许NULL值) 每行都必须有一个主键值 主键列中值不允许修改或者更新 主键值不能重用(如果某行从表中删除,主键不能赋给以后行记录...-- 找出价格NULL数据 五、高级数据过滤 本节中介绍是如何组合WHERE子句以建立功能更强、更高级搜索条件 组合WHERE子句 操作符operator:用来联结或改变WHERE句中子句关键字...()函数会忽略指定列行,但是如果COUNT()函数使用是星号,则不会忽略 3、MAX()/MIN()函数 返回指定列中最大值或者最小值 SELECT MAX(prod_price) AS...WHERE order_num = 20005; 笔记:SUM()函数会自动忽略NULL行 聚集不同值 上面的5个聚集函数都可以如下使用: 对所有的行执行计算,指定ALL参数或不指定参数(因为ALL...,SELECT语句中每列都必须在GROUP BY子句中列出 如果分组中包含具有NULL行,NULL将作为一个分组返回;如果列中出现多个NULL,它们将分成一个组 GROUP BY子句必须在WHERE

6.9K00

Mysql学习笔记,持续记录

如果在 select 中使用表达式,必须在 group by 子句中指定相同表达式。不能使用别名。 除聚集计算语句外,select 语句中每个列都必须在 group by 子句中给出。...如果分组列中具有 NULL 值, NULL 将作为一个分组返回。如果列中有多行 NULL 值,它们将分为一组。 group by 子句必须出现在 where 子句之后,order by 子句之前。...一个字符串列表就是一个由一些被 ‘,' 符号分开链组成字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,FIND_IN_SET() 函数被优化,使用比特计算。...如果str不在strlist 或strlist 空字符串,返回值 0 。如任意一个参数NULL返回值 NULL。这个函数在第一个参数包含一个逗号(‘,')时将无法正常运行。 5....如果未给出模式,被零除时MySQL返回NULL如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果NULL

1.2K50

MySQL 查询

ALL 必须跟在比较运算符之后,如果表达式与查询返回列中所有值比较结果 TRUE,返回 TRUE。...ANY 关键字必须跟在比较运算符之后,如果表达式与查询返回列中任何值比较结果 TRUE,返回 TRUE。...5.EXISTS 和 NOT EXISTS 如果子查询返回任何行, EXISTS 查询 TRUE,NOT EXISTS 查询 FALSE。...MySQL 会忽略此类查询中 SELECT 列表,因此没有区别。 对于前面的示例,如果 t2 包含任何行,甚至只包含 NULL行, EXISTS 条件 TRUE。...如果部门 ID 不同(即进入了新部门),排名 (@rn) 被重置 1,表示这是新部门第一个员工。AS rn 表示将计算出排名别名为 rn,它将作为结果集一部分返回。

20710

MySQL DQL 查询

ALL 必须跟在比较运算符之后,如果表达式与查询返回列中所有值比较结果 TRUE,返回 TRUE。...ANY 关键字必须跟在比较运算符之后,如果表达式与查询返回列中任何值比较结果 TRUE,返回 TRUE。...5.EXISTS 和 NOT EXISTS 如果子查询返回任何行, EXISTS 查询 TRUE,NOT EXISTS 查询 FALSE。...MySQL 会忽略此类查询中 SELECT 列表,因此没有区别。 对于前面的示例,如果 t2 包含任何行,甚至只包含 NULL行, EXISTS 条件 TRUE。...如果部门 ID 不同(即进入了新部门),排名 (@rn) 被重置 1,表示这是新部门第一个员工。AS rn 表示将计算出排名别名为 rn,它将作为结果集一部分返回。

5500

SQL常见面试题总结

join 左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,结果中对应行右表部分全部空(NULL). select * from student left join course...on student.ID=course.ID -- 右连接 右外连接包含right join右表所有行,如果左表中某行在右表没有匹配,结果中对应左表部分全部空(NULL)。...null 记录 count(1)指并不是计算1个数,而是指表第一个字段 用count对字段null数据可以查出来吗 不可以 对于返回结果集,一行行地判断,如果 count 函数参数不是...,不会忽略列值NULL count(1)包括了忽略所有列,用1代表代码行,在统计结果时候,不会忽略列值NULL count(列名)只包括列名那一列,在统计结果时候,会忽略列值空(这里空不是只空字符串或者...并且如果当前使用组合索引时,某字段采用了范围查询,就会导致字段后面的索引失效。

2.3K30

Mysql优化-索引

按照主键B+树排列方式存放,节点存放就是数据。 如果没有主键,以第一列聚集索引. 只有一个聚集索引。 普通索引指向聚集索引。 非聚集索引: 属于MyIsam。...如果是,则可以建立复合索引;否则考虑单字段索引; 如果复合索引中包含字段经常单独出现在Where句中分解多个单字段索引; 如果复合索引所包含字段超过3个,那么仔细考虑其必要性,考虑减少复合字段...,所以id字段nullF:subquery:除了from字句中包含查询外,其他地方出现查询都可能是subqueryG:dependent subquery:与dependent union类似...,那么这里显示是别名,如果不涉及对数据表操作,那么这显示null如果显示尖括号括起来就表示这个是临时表,后边N就是执行计划中id,表示结果来自于这个查询产生。...如果空,没有可能索引。可以为相关域从WHERE句中选择一个合适语句。

1.3K50

​MySQL中explain结果字段介绍(1)

如果上面的语句中使用了union all语法,那么就不会出现第三3行结果,因为union all过程中,不会对结果集进行去重,所以也就不会使用那个临时表。...union:一般联合查询最右面的SQL语句 union result:保存union结果临时表SQL subquery:查询语句如果不能转化成连接查询,并且最里面的查询如果被物化(物化就是通过将查询结果作为一个临时表来加快查询结果...,正常来讲,这个表是保存在内存中),这个select_type就是subquery,这个我们给出例子: mysql> EXPLAIN SELECT * FROM test2 WHERE id IN...,选择将查询物化之后与外层查询进行连接查询时,查询对应select_type属性就是MATERIALIZED 03 table 表名称,这个比较容易理解。...04 partitions 分区信息,一般null,这个可以暂时忽略。 时间关系,先这样吧,后面的几个字段以及示例明天再写吧。

2.8K20

SQL聚合函数 STDDEV, STDDEV_SAMP, STDDEV_POP

如果未指定关键字,这是默认值。 DISTINCT - 可选-指定标准偏差函数返回不同(唯一)表达式值标准偏差DISTINCT子句。...除非表达式数据类型DOUBLE,否则这些函数将返回数字数据类型。如果表达式DOUBLE,返回DOUBLE。 描述 这三个标准差聚合函数在丢弃NULL值后返回表达式值分布统计标准差。...这些标准差函数可以在引用表或视图SELECT查询或查询中使用。 它们可以在SELECT列表或HAVING子句中与普通字段值一起出现。 这些标准偏差函数不能在WHERE句中使用。...它们不能在JOINON子句中使用,除非SELECT是查询。...它们将非数值值(包括空字符串("))计算零(0)。 这些标准偏差函数会忽略数据字段中NULL值。 如果查询没有返回行,或者返回所有行数据字段值NULL返回NULL

1.1K20

MyBatis——动态SQL总结

此时我们使用if动态sql语句先进行判断,如果null或等于空字符串,我们就不进行此条件判断,增加灵活性。...if + set 更新语句 当update语句中没有使用if标签时,如果有一个参数null,都会导致错误。...当在update语句中使用if标签时,如果前面的if没有执行,或导致逗号多余错误。使用set标签可以将动态配置SET 关键字,和剔除追加到条件末尾任何不相关逗号。...如果set包含内容空的话则会出错。 使用if+set标签修改后,如果某项null则不进行更新,而是保持数据库原值。...如果传入是单参数参数类型是一个List时候,collection属性值list 如果传入是单参数参数类型是一个array数组时候,collection属性值array 如果传入参数是多个时候

63310

mybatis中sql写法技巧小总结

and 开头,MyBatis会把第一个and忽略,当然如果是or开头,MyBatis也会把它忽略;此外,在where元素中你不需要考虑空格问题,MyBatis会智能帮你加上。.../update> set元素主要是用在更新操作时候,它主要功能和where元素其实是差不多,主要是在包含语句前输出一个set,然后如果包含语句是以逗号结束的话将会把逗号忽略如果set包含内容空的话则会出错...close表示以什么结束,在使用foreach时候最关键也是最容易出错就是collection属性,属性是必须指定,但是在不同情况下,属性值是不一样,主要有一下3种情况: 如果传入是单参数参数类型是一个...如果传入是单参数参数类型是一个array数组时候,collection属性值array。...如果传入参数是多个时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数时候,在MyBatis里面也是会把它封装成一个Map,mapkey就是参数名,所以这个时候

1.1K20

SQL命令 FROM(一)

在SELECT语句中多个表指定字段名时使用表名别名。 如果FROM子句中指定了两个(或更多)表,可以通过指定tablename来指明需要哪个表字段。...如果在SELECT语句中指定WHERE子句,执行交叉联接,然后WHERE子句谓词确定结果集。这等效于使用ON子句执行内联接。...如果查询指定了表别名,必须将该表别名用作表名。...不能同时使用%INORDER和%PARALLEL优化;如果同时指定了这两个优化,忽略%PARALLEL。 %NOFLATTEN 此可选关键字在量化查询(返回布尔值查询)FROM子句中指定。...此优化选项禁用“扁平化”(默认),它通过将查询有效地集成查询到查询中来优化包含量化查询查询:将查询表添加到查询FROM子句中,并将查询中条件转换为查询WHERE句中联接或限制。

2K40
领券