SQL——分组统计查询

统计函数

COUNT(*|DISTINCT|列) --求出全部的记录数,即全部行

SUM(列) --求出总和,操作的列是数字

AVG(列) --求平均值

MAX(列) --求最大值

MIN(列) --求最小值

MEDIAN(列) --返回中间值

VARIANCE(列) --返回方差

STDDEV(列) --返回标准差

分组函数

HAVING --过滤子句,使用时必须与group by 子句一起使用:select 列名 from 表名 where 条件 group by 分组列 having 条件 order by 排序列
顺序为:from, where, group by,having,select,order by

GROUP BY --分组函数,进行分组:select 列名 from 表名 where 条件 group by 分组列 order by 排序列
顺序为:from, where, group by, select, order by

分组函数注意事项:

1.如果没有groub by子句,则在select子句若中出现统计函数则其他任何字段都不允许出现。

错误范例:select deptno,count(empno) from emp; --这样会造成字段列,和统计列的长度不一至,这是不允许的。

正确范例:select count(empno) from emp;

2.在统计查询中,select子句后只允许出现分组字段和统计函数,而其它非统计字段不允许出现。

错误范例:select deptno,ename,count(empno) from emp group by deptno; --这样会造成字段列,和统计列的长度不一至,这是不允许的。

正确范例:select deptno,count(empno) from emp group by deptno; --group by 后面的字段在select中必须出现

3.统计函数允许嵌套使用,但是嵌套统计函数之后的select子句中不允许再出现任何的字段,包括分组字段,只能出现统计函数。

错误范例:select daptno,max(avg(sal)) from emp group by deptno;

正确范例:select max(avg(sal)) from emp group by deptno;

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值