重新定位Oracle数据库中的多个字段
方法介绍(distinct关键字、group by、row_number () over (partition by列order by列desc ) )。
我的需要是根据某一列重新搜索危重后的所有信息。 最后我选择的是第三种方法。
我的想法:我想找到更简单的方法实现重新搜索。 越直接越好。
表的结构内容
1、distinct关键字用法:要通过distinct关键字后的字段组合重新运行distinct
select distinct id from test
结果; 根据id去除重量
选择distinct id,name from test
结果:由于id和name的组合而变重(如id || name那样变重)
2、集团去重
选择id,name from test group by id,name
结果:根据id的不同,name组合会变重
3、row_number () over ) partitionby列order by列asc | desc )方法
3.1按升序对row _ number (over ) orderbycolumnasc列column进行排序,并为每个记录返回序列号
3.2row_number(over ) partitionbycolumn1order by column2ASC )首先根据column1分组,然后根据column2按升序排列分组的数据
注: order by必须有
示例select a.*,row_number () over ) partitionbya.id,a.sex order by name ) su from test a;
危重病例:根据id和sex移除重量
选择id、name、sex from (
select a.*,row_number () over ) partitionbya.id,a.sex order by name (su from test a ) )。
where su=1
结果:
我的需要是根据某一列重新搜索危重后的所有信息。