knrt.net
当前位置:首页 >> SQL 查询一表所有数据 有重复的按时间取第一条 >>

SQL 查询一表所有数据 有重复的按时间取第一条

select distinct 名称, 状态, 时间 from 表 where 状态 = 1 order by 时间 desc 应该是楼主想要的~ 有重复的会按照时间取第一条~

使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。 其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号...

既然数据都重复,就时间不同,那就取max(时间)就行了吧 select 重复数据的列名1,重复数据的列名2,....,max(时间列) from table group by 重复数据的列名1,重复数据的列名2,....

IF OBJECT_ID('Table_2') > 0 DROP TABLE Table_2 GO CREATE TABLE [dbo].[Table_2] ( [tel] [INT] NOT NULL , [time] [DATETIME] NOT NULL , [name] [NVARCHAR](50) NULL ) ON [PRIMARY] INSERT dbo.Table_2 ( tel, time, name ) VALUES ( 100...

select 姓名列,count(1) as [重复次数] from 表名 group by 姓名列 having count(1)>=2 order by 重复次数 desc

你这结果不对吧,carno=1的时间最小的2017/12/21,你写的2017/12/23 select sum(t.money)from(select a.* from a,(select carno,min(time) time from a group by carno) bwhere a.carno=b.carno and a.time=b.time) t基本这样,各种数据库语句差...

你的表里有没有字段是表示更新时间的呢? 如果没有, 那就没法. 如果有, 那就对更新时间进行排序取第一条.

方法不知一两个。 其中一个,可以按时间排序取最后一个或则第一个,看你是升序或则降序了。

这个看系统的,如果是oracle : select rowid,* from t update 时,用rowid作为条件。 如果是sql server 就得修改表结构: alter table yourtable add id int identity(1,1)-------增加一自增主键 然后用id作为update的条件

我还是觉得 这样做好像是错的。 ID 姓名 职业 1 张三 学生 。。。。 3 张三 程序员 首先 ID 这个 应该是主键 不不会 重复的 不管有多少个人 叫张三 ,你的ID都是不同的。你的职业可以相同也可以不相同,难道还能要求人家性别相同或者不相同。就2...

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com