数据库中查询Top数据和去重的方法
数据库中查询Top数据和去重可以借助伪列
rownum/rowid伪列
rownum : 逻辑序列,不同sql语句在执行时,rownum不一致,在相同sql执行,rownum不变。(在一次查询,rownum保持不变)
rowid: 物理序列,在每条记录Insert到数据库时,就会有一个唯一的物理记录。rowid可以说是屋里存在的,表示记录在表空间中的一个唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。
TOP n 查询
slect rownum ,... from ( select * from ... order by ... ) where rownum > 3;
去重方法
1)delete from table2 where rowid not in (select min(rowid) from table1 group by *)
2)distinct
3)union all