数据库之六:聚合函数、group by、having、order by
1、聚合函数:
1.1、COUNT: 计算表中的记录数(行数)
可以计算出所有数据行:
select count(*) from table_name
可以计算出所有非空行数
select count(columns) from tanle_name
对于输入参数不同,输出的结果也不同。对于输入“*”,输出结果是对所有数据求行数;对于特定的列,输出结果是该列中非空数据的行数
1.2、SUM: 计算表中数值列中数据的合计值
求某列的和,如果列中有空值,则忽略
select sum(columns_name) from tanle_name
1.3、AVG: 计算表中数值列中数据的平均值,有空值,则忽略
select avg(columns_name) from tanle_name
1.4、MAX: 求出表中任意列中数据的最大值,有空值,则忽略
select max(columns_name) from tanle_name
1.5、MIN: 求出表中任意列中数据的最小值,有空值,则忽略
select min(columns_name) from tanle_name
MAX/MIN函数几乎适用于所有数据类型的列。 SUM/AVG函数只适用于数值类型的列
计算该列数据种类数
select count(distinct columns_name) from table_name
2、分组:group by 字句
可以根据columns列,对数据分组聚合
select column1,column2 from table_name group by column1,column2
a、不可以把聚合键之外的列名书写在 SELECT 子句之中
b、group by中不能使用别名
c、where字句中不能使用聚合函数
d、只有SELECT子句和HAVING子句(以及ORDER BY子句)中能够使用聚合函数
3、having字句:
对集合指定条件
在having字句中使用聚合函数条件,对集合选择
select column1,count(column2)
from table_name
group by column1
having count(*)>10
having字句中,同样可以使用普通条件,但是having中出现的字段也必须出现在group by中
4、order by:
可以对结果进行排序,默认为升序(asc),降序为(desc)
一般将order by 字句写在末尾:
select column1,count(column2)
from table_name
group by column1
having count(*)>10
order by columns,count(column2) desc
一般会将空值排序在末尾
在ORDER BY子句中可以使用SELECT子句中定义的别名
ORDER BY 子句中也可以使用存在于表中、但并不包含在 SELECT子句之中的列
数据库之六:聚合函数、group by、having、order by的更多相关文章
- 再看数据库——(5)Group By与Order By
在使用sql语句时,很多人都会分不清order by与group by,其实简单的说: order by -- 排序 group by --分组 1.order by是行的排序,默认为升序. 有两种方 ...
- 面试题: 数据库 已看1 group by 和order by的练习 sql语句练习简单 有用
1.Sql 约束 http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html 2.修改列类型 MySQL:ALTER TABLE table ...
- MySQL数据库:聚合函数的使用
聚合函数 max() 最大值 min() 最小值 avg() 平均值 sum() 求和 count() 符合条件数据的数目 聚合函数不能嵌套使用 # 在统计时字段内没有满足条件的数值只有count返回 ...
- mysql 从聚合函数group by到sql_mode
说到group by, 想必大家都不陌生, 就是对查询的数据进行分组,我们可以通过该操作实现一些特殊需求,比如去重. 最近在项目中使用HQL:" from TSjrz where CBh = ...
- linux上,mysql使用聚合函数group by 时报错:SELECT list is not in GROUP BY clause and contains nonaggre的问题
之前在windows上测试是可以正常使用的,但是上传到Linux上后,就报错: Expression # of SELECT list is not in GROUP BY clause and co ...
- Oracle数据库之六 单行函数
六.单行函数 6.1.认识单行函数 函数就是和 Java 语言之中的方法的功能是一样的,都是为了完成某些特定操作的功能支持,而在 Oracle 数据库里面也包含了大量的单行函数,这些函数掌握了以后 ...
- Oracle的聚合函数group by结合CUBE和ROLLUP的使用
转自:https://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8618 CUBE Syntax CUBE appe ...
- Oracle-09:聚合函数
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 数据库脚本放一下,供测试使用 create table DEPT ( deptno ) not null, d ...
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
随机推荐
- Python中autoescape标签使用详解
1.spaceless标签:移除html标签中的空白字符.包括空格.tab键.换行符,示例代码如下: {% spaceless %}具体内容{% endspaceless %} 2.autoescap ...
- 基于SSM开发在线家教预约系统源码
开发环境: Windows操作系统开发工具:Eclipse+Jdk+Tomcat8+mysql数据库 注意:次项目运行Tomcat8服务器里面 次项目比较大,需要自行研究 运行效果图 源码及原文链接: ...
- mysql常见问题解决方案
属性顺序错误 一般情况下字段类型要放在前面,限制参数放在后面,UNSIGNEDZEROFILL 之间没有先后顺序,主键 KEY 和 auto_increment 要放在UNSIGNED ZEROFIL ...
- What is NodeJS(学习过程)
为什么要学习node.首先是听说了这个和前后端分离有很大的关系.node作为一个基础的技术,需要提前学习.学习node,不打算直接先跟着视频去学习老师们的课程.因为想自己找到一种适合自己的学习方法.之 ...
- float浮动以及案例演示
浮动元素会影响后边的元素,但不会影响前边的元素 清除浮动: 方法一:在浮动元素后面添加一个空元素 <!DOCTYPE html> <html lang="en"& ...
- hibernate报错:MappingException: Could not determine type for...解决办法
有时候实体里的一些属性并不想映射到数据库(比方说子级菜单List), 如果不做处理的话会报字段映射错误找不到这列Column Not Found 例如:org.hibernate.MappingExc ...
- JSP+Servlet+Ajax实现用户增删改查的例子
一.数据库设计 用户表User 已有的测试数据 二.Java代码编写 Java EE的架构一般分为以下五层: ①.Domain ②.DAO ③.Service ④.Controller ⑤.View ...
- IntelliJ IDEA搭建一个简单的springboot项目
一.IDEA 安装包 百度网盘链接:https://pan.baidu.com/s/1MYgZaBVWXgy64KxnoeJSyg 提取码:7dh2 IDEA注册码获取:http://idea.lan ...
- 【29】带你了解计算机视觉(Computer vision)
计算机视觉(Computer vision) 计算机视觉是一个飞速发展的一个领域,这多亏了深度学习. 深度学习与计算机视觉可以帮助汽车,查明周围的行人和汽车,并帮助汽车避开它们. 还使得人脸识别技术变 ...
- js参数自定义
function test(){ //利用对象自定义参数名称 var t = {P1:"a",P2:"b"} //返回的数据 var ttt = {a:&quo ...