1. 聚合函数(只有一个返回值[用在数据表当中])
    2. AVG() 平均值
    3. select round(avg(goods_price),2) as avg_price from goods(取2位小数)
    4. count() 计数
    5. max() 最大值
    6. min() 最小值
    7. 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中不支持这种查询方法)
    例子:

    1. create table employee(
    2. id smallint unsigned primary key auto_increment,
    3. deptid varchar(20) default null,
    4. salary decimal(10,2)
    5. );
    6. 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);
    1. +----+--------+----------+
    2. | id | deptid | salary |
    3. +----+--------+----------+
    4. | 1 | 10 | 5500.00 |
    5. | 2 | 10 | 4500.00 |
    6. | 3 | 20 | 1900.00 |
    7. | 4 | 20 | 4800.00 |
    8. | 5 | 40 | 6500.00 |
    9. | 6 | 40 | 14500.00 |
    10. | 7 | 40 | 44500.00 |
    11. | 8 | 50 | 6500.00 |
    12. | 9 | 50 | 7500.00 |
    13. +----+--------+----------+

    这种结构
    需求:根据部门分组,显示每个部门的工资等级
    预期结果

    image.png

    1. select *,row_number() over (partition by deptid order by salary desc) rank from employee;

    但是mysql好像不支持,pg和oracle支持