Group By子句的用法

1、用途

Group by子句用于在查询结果集中对记录进行分组,以汇总数据或者为整个分组显示单行的汇总信息。例如一个小公司的工资单,存在job_id, employee_id,salary三个字段分别代表职位,人员id和月薪。记录如下:

工程师 1001 10000

工程师 1002 8000

工程师   1003 8500

秘书 1004 5500

秘书 1005 3000

老板 1006 20000

通过select job_id,MAX(salary) from tablename group by job_id可以得到

工程师 10000

秘书 5500

老板 20000


2、注意

在select子句的后面只可以有两类表达式:统计函数(AVG\MIN\MAX\SUM)和进行分组的列名;

在select子句中的列名必须是进行分组的列,初次之外添加的列名都是错误的,但是,group by子句后面的列名可以不出现在select子句中;

如果使用where子句,那么所有参与分组的计算机的数据必须首先满足where子句的指定条件;

在默认条件下,将按照group by子句指定的分组列升序排列,如果需要重新排列,可以使用order by子句指定新的排列顺序、


3、Having子句

having子句通常和Group子句一起使用,在完成分组结果统计之后,可以使用having子句对分组进行进一步筛选。
having子句和where子句有相似之处,都是定义搜索条件,但是having子句与组有关,而where子句和单个行有关。
对该子句理解有一个方法:
记住select语句中的子句的处理顺序。在select语句中,首先由from子句找到数据表,where子句则解释from子句输出的数据,而having子句则接受来自group by,where或from子句的输入,例如查询最低月薪小于3000的分组
select job_id, MIN(salary) from table name group by job_id having MIN(salary)<3000;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值