多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
~~~ 聚合函数(只有一个返回值[用在数据表当中]) AVG() 平均值 select round(avg(goods_price),2) as avg_price from goods(取2位小数) count() 计数 max() 最大值 min() 最小值 sum() 求和 ~~~ ROW_NUMBER() OVER函数 row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序 row_number() OVER(PARTITION BY)与 rank() OVER(PARTITION BY) 区别:前者有两个并列第一则返回一条记录,后者返回两条,同时是跳跃排序;dense_rank()是连续排序!!(mySql中不支持这种查询方法) 例子: ~~~ create table employee( id smallint unsigned primary key auto_increment, deptid varchar(20) default null, salary decimal(10,2) ); insert into employee (deptid,salary) values ('10',5500.00),('10',4500.00),('20',1900.00),('20',4800.00),('40',6500.00),('40',14500.00),('40',44500.00),('50',6500.00),('50',7500.00); ~~~ +----+--------+----------+ | id | deptid | salary | +----+--------+----------+ | 1 | 10 | 5500.00 | | 2 | 10 | 4500.00 | | 3 | 20 | 1900.00 | | 4 | 20 | 4800.00 | | 5 | 40 | 6500.00 | | 6 | 40 | 14500.00 | | 7 | 40 | 44500.00 | | 8 | 50 | 6500.00 | | 9 | 50 | 7500.00 | +----+--------+----------+ 这种结构 需求:根据部门分组,显示每个部门的工资等级 预期结果 ![](https://box.kancloud.cn/a580c0567e4b7793075697ee5075524f_698x536.jpg) ~~~ select *,row_number() over (partition by deptid order by salary desc) rank from employee; ~~~ 但是mysql好像不支持,pg和oracle支持