如下图数据,我们业务需要,只取每个dumpingSite一样的第一条数据:
写法:
select s.*
from (
select *, row_number() over (partition by [重复字段] order by [排序字段]) as group_idx
from table_name
) s
where s.group_idx = 1
说明:开窗函数: over (partition by order by)
Oracle数据库是支持这种写法的,mysql的话要8版本或以上才支持
PARTITION 中文是分割的意思,ORDER 是排序的意思,把一组数据按照制定的字段进行分割成各种组,然后组内按照某个字段排序
简而言之就是
分组后对组内数据排序