12,sql 中分组查询

分组函数(聚合函数)

sum(列名) --求和

AVG(列名) --求平均

MIN(列名) --求最小

MAX(列名) --求最大

COUNT(列名 | * |数字) --计数

group by

根据要求,按照规则分组,统一分析各组的情况,每一组返回一个值。

SELECT *|列名|常量|计算|函数
  FROM 表名
    WHERE 过滤条件
      GROUP BY 分组内容
        HAVING 过滤条件
          ORDER BY 排序内容 ASC|DESC;

1.统计除10号部门的其他部门中,哪些部门的最高薪资达到三千

2.查询平均薪资超过1800的部门,显示部门编号及平均薪资

3.查询薪资合计超过5000的岗位及其平均薪资

4.查询部门人数超过4人的部门编号及薪资合计

5.查询各部门下,人数超过两人的岗位有哪些,显示部门编号、岗位名称

6.查询姓名重复的员工的姓名

SELECT deptno 
	FROM emp 
		WHERE deptno !=10 
			GROUP BY deptno 
				HAVING MAX(sal)>=3000;
SELECT deptno,AVG(sal) 
	FROM emp 
		GROUP BY deptno 
			HAVING AVG(sal)>1800;
SELECT job,AVG(sal) 
	FROM emp 
		GROUP BY job 
			HAVING SUM(sal)>5000;
SELECT deptno,SUM(sal) 
	FROM emp 
		GROUP BY deptno 
			HAVING COUNT(deptno)>4;
SELECT deptno,job 
	FROM emp 
		GROUP BY deptno,job 
			HAVING COUNT(job)>2;
SELECT ename 
	FROM emp 
		GROUP BY ename 
			HAVING COUNT(ename)>=2;

-- 1. 查找每位客户的订单数量和总金额



GROUP BY 根据客户进行分组

select customer_id,count(order_id) as '订单数量',SUM(total_amount) FROM orders GROUP BY customer_id

-- 2. 查找订单总金额超过 50.00 的客户

-- 2. 查找订单总金额超过 50.00 的客户

group by 根据客户进行分组   having 查找后的条件

select customer_id,SUM(total_amount) FROM orders group by customer_id having SUM(total_amount)>50
相关推荐
lzhlizihang26 分钟前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
superman超哥1 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452001 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
engchina2 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina2 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生2 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
威哥爱编程2 小时前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
小华同学ai2 小时前
AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具
数据库·信息可视化·开源
Acrelhuang2 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的kraft集群
大数据·sql·oracle·kafka·json·hbase