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
相关推荐
Rverdoser2 分钟前
【SQL】多表查询案例
数据库·sql
Galeoto5 分钟前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)33 分钟前
MySQL主从架构
服务器·数据库·mysql
leegong2311134 分钟前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白36 分钟前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码37 分钟前
【SQL实验】触发器
数据库·笔记·sql
和道一文字yyds39 分钟前
MySQL 中的索引数量是否越多越好?为什么?如何使用 MySQL 的 EXPLAIN 语句进行查询分析?MySQL 中如何进行 SQL 调优?
数据库·sql·mysql
落笔画忧愁e1 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
Σίσυφος19002 小时前
halcon 条形码、二维码识别、opencv识别
前端·数据库
小刘|2 小时前
深入理解 SQL 注入漏洞及解决方案
数据库·sql