时间,现在我想把所有数据select出来,按日期,人员,然后改变当前行的顺序值的方法(每次存储上次的日期和人员,此顺序列是某一天,某个人,先后时间的顺序,效果如图所示是这样的,日期,人员,此次比对二值,相同:
我现在有了在数据查询出来之后,再遍历查看当前日期和人员是否不同,比方说我又一张表,三列,时间排序,然后我想最后再加一列,就是顺序列:顺序增加1,不同顺序初试为1)
这样做感觉特费劲
有没有显示分组并显示数据顺序的SQL语句
答案:3 悬赏:20 手机版
解决时间 2021-02-07 22:57
- 提问者网友:抽煙菂渘情少年
- 2021-02-07 06:29
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-02-07 07:00
如果为SQL2005以上则可以
select 日期,人员,时间,row_number() over(partition by 日期,人员 order by 时间) from table
select 日期,人员,时间,row_number() over(partition by 日期,人员 order by 时间) from table
全部回答
- 1楼网友:从此江山别
- 2021-02-07 09:14
如果只是简单的找出重复学号的话
select id from table1 group by id having count(*) > 1
如果是想要查询出来的数据是排重后的
select *
from (
select a.*,row_number() over(partition by id order by id) rn
from table1 a
) where rn = 1
这样查询出来的信息不会为重了。
- 2楼网友:空山清雨
- 2021-02-07 08:19
declare mycur cursor for select DISTINCT 日期, 姓名 from table
declare @T1 DATETIME
DECLARE @T2 CHAR
declare @t table (日期 DATETIME,姓名CHAR ,时间 CHAR,顺序 int )
open mycur
fetch next from mycur into @T1, @T2
while @@fetch_status=0
begin
select *,identity (int,1,1) into #a from YB1
where 日期= @t1
and 姓名= @t2
order by 时间
insert into @t
select * from #a
drop table #A
fetch next from mycur into @t1, @T2
end
close mycur
deallocate mycur
select * from @t
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯