GROUP BY的用法示例

GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。
GROUP BY必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等

新建学校用户表:

CREATE TABLE `users` (
  `id` bigint(15) NOT NULL AUTO_INCREMENT COMMENT '主键id ',
	`school_id` bigint(15) NOT NULL COMMENT '学校id',
  `user_name` varchar(8) NOT NULL COMMENT '姓名 ',
  `user_price` decimal(13,3) DEFAULT NULL COMMENT '工资',
  `user_state` varchar(5) DEFAULT '1' COMMENT '01学生,02老师,03班主任,04校长',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间 ',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间 ',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='学校用户表';

1.分别按照年/月来统计用户入校的人数:
按年统计:

SELECT DATE_FORMAT(create_time,'%Y') as statistics_key,
count(*)  statistics_count 
FROM 
users
WHERE
create_time BETWEEN '2020-01-01 00:00:00' and '2021-03-30 00:00:00'  
GROUP BY  statistics_key 

在这里插入图片描述

按月统计:

SELECT DATE_FORMAT(create_time,'%Y-%m') as statistics_key,
count(*)  statistics_count 
FROM users
WHERE
create_time BETWEEN '2020-01-01 00:00:00' and '2021-03-30 00:00:00' 
GROUP BY  statistics_key 

在这里插入图片描述
2.分别按照职位来统计用户摸个时间段入校的人数:

SELECT user_state as statistics_key,
count(*) as statistics_count 
FROM
users
 WHERE create_time BETWEEN '2020-01-01 00:00:00' and '2021-03-30 00:00:00' 
 GROUP BY statistics_key

在这里插入图片描述
注意:

where要放在group by前面
group by 后面加条件只能用having关键字

  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值