oracle group by取第一条,取出分组后每组的第一条记录按时间倒序
时间: 2023-07-30 10:09:41 浏览: 209
mysql分组取每组前几条记录(排名) 附group by与order by的研究
你可以使用Oracle的分析函数`ROW_NUMBER()`来实现这个功能。首先,你需要按照分组和时间倒序对数据进行排序,然后使用`ROW_NUMBER()`为每个分组中的行编号,最后选择行编号为1的行即可。以下是一个示例查询:
```
SELECT *
FROM (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY time_column DESC) rn
FROM your_table t
)
WHERE rn = 1
ORDER BY time_column DESC;
```
在这个查询中,`your_table`是你要查询的表,`group_column`是你要分组的列,`time_column`是你要按时间倒序排序的列。该查询使用了一个子查询,其中使用了`ROW_NUMBER()`函数,并按照分组和时间倒序排序。外部查询选择行编号为1的行,并按照时间倒序排序。
阅读全文