Mysql 分组取值
来源:互联网 发布:淘宝卖家发票怎么办 编辑:程序博客网 时间:2024/06/02 04:27
这篇博客主要实现 MySQL的分组取最大值和最小值,以及分组后取每组最大N个值,以及在树形中需要分组取出父节点的所有子节点功能
一.表和数据准备
-- 数据准备drop TABLE if EXISTS ttt;CREATE TABLE `ttt` ( `empid` int(11) DEFAULT NULL, `deptid` int(11) DEFAULT NULL, `salary` decimal(10,2) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('1', '10', '5500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('2', '10', '4500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('10', '10', '10.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('10', '20', '10.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('4', '20', '4800.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('5', '40', '6500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('7', '40', '44500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('6', '40', '14500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('8', '50', '6500.00');INSERT INTO ttt (`empid`, `deptid`, `salary`) VALUES ('9', '50', '7500.00');
二.分组查询每组最大值(如果是获取每组最小值的话,只需要吧max函数换成min函数即可)
-- 获取分组后的最大值select empid,deptid,salaryfrom ttt awhere a.salary=(select max(salary) from ttt b where a.deptid =b.deptid);order by a.deptid,salary ;
三.分组后获取每组最大的两个值
-- 获取分组后每组最大的两个值-- 此处a.salary < b.salary来界定是取最大值还是最小值,这里取的是分组后的最大值-- 最后的<2表示取头两条数据select empid,deptid,salaryfrom ttt awhere (select count(*) from ttt b where a.deptid = b.deptid and a.salary < b.salary) < 2order by a.deptid,salary;
四.获取父节点下的所有子节点信息,一行显示。
此sql,你可以把deptid看为父ID,把salary看为子ID,然后就得到了每个父节点下的所有子节点
-- 分组后把指定字段值合并到一起select deptid,GROUP_CONCAT(salary) as salaryfrom ttt group by deptid
0 0
- Mysql 分组取值
- mysql分组取值,实现row_number功能
- mysql分组取top N
- mysql分组取最近时间
- Mysql取分组后前N个值
- 正则:分组取值
- mysql分组取每组前几条记录(排名)
- mysql分组取前n条记录
- mysql分组取每组前几条记录(排序)
- MySQL分组后取3条记录
- Mysql按字段分组取最大值记录
- mysql分组取每组前几条记录
- Mysql按字段分组取最大值记录
- mysql 分组取第一条数据
- mysql分组取每组前几条记录(排名)
- mysql分组取每组前几条记录(排名)
- mysql分组,取每组前几条记录
- mysql 分组取前N记录
- lintcode 加油站(187)
- 命令模式(22)
- 【opencv】stitching图像拼接
- 微信企业付款
- 洛谷P009 阶乘之和
- Mysql 分组取值
- SVN使用(转载自CSDN Kevin's BLOG)
- 关机与重启命令
- leetcode_middle_48_62. Unique Paths
- Job 存储和持久化 (第三部分)
- attrs.xml文件中属性类型format值的格式
- 标准
- 同步、异步
- linux内核学习笔记---Linux 的进程控制块数据结构task_struct