mysql 按表达式或函数分组、多个字段分组、排序

按表达式或函数分组:

#案例:按员工的姓名的长度分组,查询每一组的员工个数,筛选员工个数大于五

SELECT
    COUNT(*),LENGTH(last_name)
FROM
    employees
GROUP BY
    LENGTH(last_name)
HAVING
    COUNT(*)>5;

按多个字段分组:
#案例:查询每个部门每个工种的员工的平均工资

SELECT
    AVG(salary),department_id,job_id
FROM
    employees
GROUP BY
    department_id,job_id;

排序
#案例:查询每个部门每个工种的部门编号不为null的员工的平均工资>10000,并且按平均工资的高低显示

SELECT
    AVG(salary),department_id,job_id
FROM
    employees
WHERE
    department_id IS NOT NULL
GROUP BY
    department_id,job_id
HAVING
    AVG(salary)>10000
ORDER BY
    AVG(salary) DESC;

原文地址:https://blog.51cto.com/14437184/2436653

时间: 2024-10-27 12:35:48

mysql 按表达式或函数分组、多个字段分组、排序的相关文章

【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法

第二章 mysql 一.模糊查询 like 1. 字段 like '河北省%' %代表任何N个字符 2 字段 like '河北省____' _代表任意1个字符 二.IN 语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段x IN ( 值1,值2,值3…) 三.排序 语法:select 字段1, 字段2, ... from 表名 where 条件 order by 字段 [asc|desc] asc :升序 desc :降序 默认是升序asc SELECT * FROM s

Mysql中常用的函数

控制流函数IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10); -> 0 mysql> select IFNULL(1/0,10); -> 10 mysql> select IFNULL(1/0,'yes');

group_concat('fanme')函数 group by id 把分组后的fname 都查出来 结果以 ""张三,李四,王五""

group_concat函数详解 博客分类: SQL MySQLSQL 问了好多人,都不知道group_concat这个函数. 这个函数好啊,能将相同的行组合起来,省老事了. MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name

MySQL group by 单字分组序和多字段分组

我这里创建了一个 goods 表,先看下里面的数据: mysql> select * from goods; +----+------+------+------------+-------------+------------+ | id | s_id | b_id | goods_name | goods_price | goods_desc | +----+------+------+------------+-------------+------------+ |  1 |    1 

MySQL 日期和时间函数

MYsql日期和时间函数 大汇总这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) = 30; DAYOF MYsql日期和时间函数大汇总这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM tab

Mysql中关于 group_concat函数详解

group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+---

Mysql中常用的函数汇总

Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回值e(自然对数的底)的x次方floor(x) 返回小于x的最大整数值greatest(x1,x2,...,xn)返回集合中最大的值least(x1,x2,...,xn) 返回集合中最小的值ln(x) 返回x的自然对数log(x,y)返回x的以y为底的对数mod(x,y) 返回x/y的模(余数)pi(

SQLServer 中实现类似MySQL中的group_concat函数的功能

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')), 1, 1, '' )AS b from  # tb AS t GROUP BY a; 先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉. 具体实现参考:http:/

MySQL入门-8:函数

大纲 1.函数 2.文本处理函数 3.数值计算函数 4.日期处理函数 5.聚集函数 1.函数 函数好用,但是不通用: 函数大致可以分为以下类型: 用于处理文本串 用于处理日期和时间 用于数值计算 返回DBMS系统信息 如何知道函数怎么使用? 1.查看官方文档:http://dev.mysql.com/doc/refman/5.1/zh/index.html 2.mysql> help functions; 然后,根据自己的需要,查看具体的函数类别. MySQL中使用函数时,函数名和左括号之间不能