mysql分组_MySQL 分组查询-GROUP BY

水深无声 2023-01-10 15:54 308阅读 0赞

分组查询语法

select 分组函数,列

from 表名

【where】 筛选条件 — where的位置可以放在group by的前面或者后面,两者有不同含义

group by 分组的列表

【having】筛选条件

【order by】 —如果使用到排序,order by语句基本在最后

where的使用特点:1,

数据源 位置 关键字

分组前筛选 来源于‘from’表中 group by前 where

分组后筛选 来源于分组函数计算过结果集 group by后 having

2,group by 子句支持单个字段,多个字段(字段之间用,隔开),表达式或者函数

SELECT MAX(salary),job_id

FROM employees

GROUP BY job_id;

SELECT COUNT(*),location_id

FROM departments

GROUP BY location_id;

添加筛选条件

SELECT AVG(salary),department_id

FROM employees

WHERE email LIKE ‘%a%’

GROUP BY department_id;

SELECT MAX(salary),manager_id

FROM employees

WHERE commission_pct IS NOT NULL

GROUP BY manager_id;

添加复杂的筛选条件

SELECT COUNT(*),department_id

FROM employees

GROUP BY department_id;

SELECT job_id,MAX(salary),commission_pct

FROM employees

WHERE commission_pct IS NOT NULL

GROUP BY job_id

HAVING MAX(salary)>12000;

按表达式或函数分组

SELECT COUNT(),LENGTH(last_name) len_name

FROM employees

GROUP BY LENGTH(last_name)

HAVING COUNT()>5;

按多个字段分组

SELECT AVG(salary),job_id,department_id

FROM employees

GROUP BY job_id,department_id;

添加排序

SELECT AVG(salary),job_id,department_id

FROM employees

GROUP BY job_id,department_id

ORDER BY AVG(salary) DESC;

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL GROUP BY分组查询

    在 MySQL SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行