2 mr bufu Mr_Bufu 于 2016.03.30 12:01 提问

请问下sql怎么按分钟去重复呢,注意是sqlserver

一张表有 recordid name createtime 三个字段

现在有很多数据,比如一个人在一分钟内记录了好多次数据
比如 1 "Simba1" 2016-01-01 08:09:11.000
2 "Simba1" 2016-01-01 08:09:21.000
3 "Simba1" 2016-01-01 08:09:31.000
4 "Simba2" 2016-01-02 08:09:11.000
5 "Simba2" 2016-01-02 08:09:12.000

现在需要做统计,一个name一分钟内的数据只算一次,怎么做去重复呢?
我试了distinct和group by 都不管用。
求告知

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.30 12:16
先把日期格式化到分钟,然后在distinct,下面是oracle的
 select distinct recordid,name,createtime from(
  select recordid,name,to_char(createtime,'yyyy-MM-dd HH:mm') as createtime from 表名
)
Mr_Bufu
Mr_Bufu   2016.03.30 13:38

sqlserver中,distinct的话,好像是整行的,只要有一个字段不一样就去不了重复图片说明

我希望的效果是同一个人同一分钟的只记一次,但所有字段都要查

Mr_Bufu
Mr_Bufu 回复danielinbiti: 但业务上需要那个流水id呢
2 年多之前 回复
danielinbiti
danielinbiti 去掉recordid,只要name和createtime,也就是只要distinct ddd,userid
2 年多之前 回复
jingshaohui
jingshaohui   2016.03.30 15:16

图片说明
你要的结果出来的了,上面的表示初始表,下面的是你要的结果

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
sqlserver 按五分钟分组
SQL 根据注册时间,按指定分钟数 分组进行数据报表统计  create table tb(时间 datetime , 金额 int)   insert into tb values('2007-1-1 10:00:23' ,          8 )  insert into tb values('2007-1-1 10:01:24' ,          4 )  in
SQL去除某字段重复记录
原理:对需要去重复记录的字段按组排序,然后取其中一条记录。在总查询语句中使用in语法过滤去掉重复记录select * from company where comid in (select Max(comid) from company group by companyname)得到重复记录数select * from company where comid not in (selec
sql server 查询去掉重复记录
1.    if exists(select * from sysobjects where name='stuInfo')   2.    drop table stuInfo   3.    create table stuInfo /*创建学员信息表**/   4.    (   5.     stuName varchar(20) not null,
SqlServer 2000 去除完全重复的记录 无主键约束
如果你的情况也是,没有主键约束,导致出现了很多完全一致的记录,这时候如何去重复就比较麻烦了,因为是sqlserver 2000 还没有支持rowid这种东西,坑。 不过,我这里有个法子,挺好用的。 首先给你需要去重的表添加一列,设置为主键 + 自增标识   (我这里取名 tempID) 然后通过sql去掉重复记录: delete from  表名 where 字段1(判
SQLSERVER 怎样去除重复记录
 【SQLSERVER】怎样去除重复记录有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。     1、对于第一种重复,比较容易解决,使用     select   distinct   *   from   tableName     就可以得到无重复记录的结果集。     如果该表需
用SQL语句去掉重复的记录(转)
<br />海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复?<br />如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重:Sql代码  delete from 表 where id not in       (select max(id) from 表 group by mobilePhone,officePhone,email )       or      delete from 
SQL:DISTINCT 去除重复
1.作用于单列2.作用于多列3.COUNT统计4.distinct必须放在开头5.其他 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。 表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下:
先去重复再进行分页的SQL语句
先去重复再分页SQL语句
SQL 如何去除重复的字符串
方案一:declare @ret varchar(8000) select @ret = 'APR-11,APR12,APR06,APR-11,APR12,APR06' select distinct name=substring(@ret,number,charindex(',',@ret+',',number)-number) from master..spt_values whe
SQL查询重复数据和清除重复数据
选择重复,消除重复和选择出序列 有例表:emp emp_no   name    age         001           Tom      17         002           Sun       14         003           Tom      15         004           Tom      16 要求: 列出所有