SQL 根据最新日期去重
时间: 2023-02-13 16:46:29 浏览: 227
SQL Server 去重
可以使用以下 SQL 语句来根据最新日期去重:
```
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY date_col DESC) as row_num
FROM table
) t
WHERE t.row_num = 1;
```
这个语句会将 `table` 中的行按照 `col1` 和 `col2` 分组,然后对每组内的行根据日期列 `date_col` 进行排序。最后,对于每组内的第一行(即最新日期)保留,其余行删除。
例如,假设有以下表格:
| id | col1 | col2 | date |
| --- | ---- | ---- | ---------- |
| 1 | A | X | 2021-01-01 |
| 2 | A | X | 2021-01-03 |
| 3 | A | Y | 2021-01-02 |
| 4 | B | X | 2021-01-01 |
| 5 | B | Y | 2021-01-03 |
使用上述 SQL 语句后,得到的结果表格为:
| id | col1 | col2 | date |
| --- | ---- | ---- | ---------- |
| 2 | A | X | 2021-01-03 |
| 3 | A | Y | 2021-01-02 |
| 5 | B | Y | 2021-01-03 |
只保留了每组内最新日期的行。
阅读全文