sql分组查询

更新时间:2023-07-13 13:02:56 阅读: 评论:0

sql分组查询
1、分组查询语句 GroupBy+Group_concat
group by 是分组,是分组,是分组,重要的事情说三遍!分组并不是去重,⽽是分组。
将查询结果按⼀个或多个进⾏分组,字段值相同的为⼀组。
⽐如:
公司⼀个部门的为⼀组,学校班级为⼀组或者⼀个年级为⼀组;
以公司的部门为例:
1 lect deparmant, GROUP_CONCAT(`name`) from employee GROUP BY deparmant
如何组建局域网
这条sql语句的意思是,从employee表中以deparmant为组,查出来⼀列是deparmant部门、⼀列是GROUP_CONCAT(`name`)聚合的姓名的数据;
2、分组注意事项
分组注意事项:在分组时,lect后⾯跟的的字段⼀般都会出现在 group by 后;
例如:以性别分组写⼀个sql
1 SELECT gender,GROUP_CONCAT(`name`) from employee GROUP BY gender
云南元阳梯田这条sql语句的意思是,从employee表中以gender 性别为组,查出来⼀列是gender性别、⼀列是GROUP_CONCAT(`name`)聚合的姓名的数据;书法作品欣赏图片
3、可以加⼊函数写sql
1 lect deparmant, GROUP_CONCAT(salary), SUM(salary),AVG(salary) 平均⼯资,MAX(salary) 最⾼⼯资 from employee GROUP BY deparmant;
-- 根据department 分组,计算各部门下⼯资总数,平均⼯资,最⾼⼯资![1532919789347]
爱在太空再举个例⼦:
赐金放还-- 查询每个部门的部门名称以及每个部门⼯资⼤于1500的⼈数
1 SELECT deparmant,GROUP_CONCAT(salary), COUNT(*) from employee WHERE salary > 1500 GROUP BY deparmant
4、SQL分组GroupBy+Having
group by + having ⽤来分组查询后指定⼀些条件来输出查询结果
having 和 where ⼀样,但 having 只能⽤于 group by
1 -- 查询⼯资总和⼤于 9000的部门名称流年岁月
2 SELECT deparmant, GROUP_CONCAT(salary), SUM(salary) FROM employee
3 GROUP BY deparmant
4 HAVING SUM(salary) > 9000;
having 和 where 的区别:
having 是在分组后对数据进⾏过滤,where 是在分组前对数据进⾏过滤
having后⾯可以使⽤分组函数(统计函数),where后⾯不可以使⽤分组函数
松懈的近义词where 是对分组前记录的条件,如果某⾏记录没有满⾜where字句的条件,那么这⾏记录不会参加分组;⽽having是对分组后数据的约束
海棠秋
5、sql语句书写顺序

本文发布于:2023-07-13 13:02:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1094340.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分组   查询   部门   数据   语句   条件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图