数据库多条数据取最新一条的sql
示例数据库中重复数据
名称 | 交易金额 | 日期 |
---|---|---|
电脑 | $1600 | 2022-03-01 |
手机 | $12 | 2022-02-18 |
电脑 | $1 | 2022-03-01 |
使用ROW_NUMBER( PARTITION BY ** ORDER BY ** )函数
语法:ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)
功能:表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的)
row_number() 返回的主要是“行”的信息,并没有排名
示例sq
// ROW_NUMBER() OVER (PARTITION BY ** ORDER BY ** )
SELECT W.*
(SELECT 需要查询的字段,ROW_NUMBER() OVER (PARTITION BY 表字段(日期) ORDER BY
表字段(交易金额) DESC) AS RN
FROM 表名) W
where W.RN = 1;
处理后的数据
名称 | 交易金额 | 日期 |
---|---|---|
电脑 | $1600 | 2022-03-01 |
手机 | $12 | 2022-02-18 |