怎么去掉重复数据

我有个报表,数据库里面有许多重复的数据。我想在SQL里把SN字段的重复数据去重怎么写啊,麻烦请各位大神给我写一下,指点指点,谢谢了。我写的SQL如下
select * from dbo.checkinfo WHERE UpdateDateTime >='${qsrq}' AND UpdateDateTime <='${jzrq}' AND model LIKE '%${model}%' ${if(len(sn) == 0,"","and sn = '" + sn + "'")} ${if(len(Line) == 0,"","and Line = '" + Line + "'")}
FineReport孤陌 发布于 2016-8-5 09:56
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共11回答
最佳回答
0
zhengdd发布于2016-8-5 09:56(编辑于 2023-9-6 09:34)
555
最佳回答
0
gqmao发布于2016-8-5 10:00(编辑于 2023-9-6 09:34)
555
最佳回答
0
zhengdd发布于2016-8-5 10:01(编辑于 2023-9-6 09:34)
555
  • pangfusheng pangfusheng(提问者)

    其他的字段基本是重复的,我只是想把SN重复的内容去重
    回复
    2016-08-05 10:03 
  • pangfusheng pangfusheng(提问者)

    刚才我理解错了,是所有字段部分重复。如果SN重复的数据 那这几行数据 除了时间 ID2个字段其他字段是一样的。
    回复
    2016-08-05 10:25 
最佳回答
0
孤陌发布于2016-8-5 10:03(编辑于 2023-9-6 09:34)
555
  • zhengdd zhengdd

    如果你是用的是mysql,那可以select *不变,在最后加上group by 重复的所有字段。如果是sqlserver,那group by中必须是select的所有非聚合字段,你可以把select *变成select a,b,c,d,min(e),min(f)等,a,b,c,d是数据重复的字段,e,f等是非重复字段,min也可以换成max等,反正随便去其中一个就可以了,最后加上group by a,b,c等重复字段,这么说明白吗?
    回复
    2016-08-05 10:15 
最佳回答
0
星痕发布于2016-8-5 10:06(编辑于 2023-9-6 09:34)
555
最佳回答
0
孤陌发布于2016-8-5 10:08(编辑于 2023-9-6 09:34)
555
  • 星痕 星痕

    那你就都写出来,你只是想要去重一个字段的,那你只能都写出来,要不然只能全部匹配去重。百度好好去看distinct的定义
    回复
    2016-08-05 10:19 
最佳回答
0
孤陌发布于2016-8-5 10:11(编辑于 2023-9-6 09:34)
555
最佳回答
0
zhengdd发布于2016-8-5 10:15(编辑于 2023-9-6 09:34)
555
最佳回答
0
星痕发布于2016-8-5 10:19(编辑于 2023-9-6 09:34)
555
最佳回答
0
孤陌发布于2016-8-5 10:25(编辑于 2023-9-6 09:34)
555
  • zhengdd zhengdd

    那你干脆这样好了,select SN,max(id),max(updatetime),max(order)...group by SN,除了SN,其他字段都加上max,这样就能保证SN是唯一的了
    回复
    2016-08-05 09:56 
  • 0关注人数
  • 1230浏览人数
  • 最后回答于:2018-1-11 16:22
    活动推荐 更多
    热门课程 更多
    返回顶部