Oracle数据库
select t.*
from
(
select a.*, ROW_NUMBER() OVER (PARTITION BY 分组列 ORDER BY 组内排序列 DESC) rn
from 表名 a
) t
where t.rn = 1
Mysql数据库
mysql5.7中,子查询排序默认失效,用limit来恢复排序。
另:
(
oracle中,select部分出现group by部分,以外的列,会报错,要不就得用聚合函数包裹列。
mySQL中,默认取了第一条,所以可以这样写。
)
SELECT *
FROM
(
SELECT *
FROM 表名
ORDER BY 组内排序列 DESC
LIMIT 10000
) a
GROUP BY 分组列
本文介绍了如何在Oracle和MySQL数据库中实现分组并选取每组的最大值记录。通过使用ROW_NUMBER()窗口函数和LIMIT关键字,可以有效地从大量数据中筛选出所需的数据行。
6304





