1、单个字段去除重复值
select distinct '字段名' from '表名'
2、如果需求不仅仅是找出某一个字段的唯一值,我们还想查看一下,这个字段拥有重复值的几条数据,进一步分析重复的原因,那就需要用到下面的语句:
select code,count(code)
from report_detailed
group by code
having count(code)>1
order by count(code) desc
这时,就可以看到具体的字段值及其重复次数,如下表所示:
code | count |
---|---|
code1 | 2 |
code2 | 5 |
code3 | 6 |
如果想查看code值为code1的明细,只需要输入具体值查找就可以了:
select *
from report_detailed
where code = 'code1'
3、通过查看数据发现,虽然code相同,但是其修改时间不同,可能是生成一条记录后,对记录进行修改,生成了一条新的记录,但之前的并没有删除。于是,我们希望保留修改时间为最新的一条。
select code,time,px
from (
select code,time,
row_number() over(partition by code order by time desc) px
from report_detailed
)
where px=1