数据如下:
工单号 完成时间毫秒值
000001 1355662908
000001 1355662907
000001 1355662906
000002 1355662905
000002 1355662904怎么写个sql,可以展示如下格式的数据
工单号 完成时间毫秒值
000001 1355662908
000001
000001
000002 1355662905
000002 也就是工单号为000001的一组里只显示第一个也就是值最大的这个数,000002类似select c1, c2 from table1 order by c2
工单号 完成时间毫秒值
000001 1355662908
000001 1355662907
000001 1355662906
000002 1355662905
000002 1355662904怎么写个sql,可以展示如下格式的数据
工单号 完成时间毫秒值
000001 1355662908
000001
000001
000002 1355662905
000002 也就是工单号为000001的一组里只显示第一个也就是值最大的这个数,000002类似select c1, c2 from table1 order by c2
select "工单号","完成时间毫秒值",
row_number() over(partition by "工单号" order by "完成时间毫秒值" desc) rn from ax
);
工单号 DECODE(RN,1,"完成时间毫秒值")
------ -----------------------------
000001 1355662908
000001
000001
000002 1355662905
000002
with table1 as
(
select '000001' dh,1355662908 s from dual union all
select '000001' dh,1355662907 s from dual union all
select '000001' dh,1355662906 s from dual union all
select '000002' dh,1355662905 s from dual union all
select '000002' dh,1355662904 s from dual
)select t1.dh "工单号",
decode(t1.s,ms,ms,null) "完成时间毫秒值"
from table1 t1,
(select dh,max(s) ms from table1 group by dh) t2
where t1.dh = t2.dh
工单号 完成时间毫秒值
-----------------------------------
1 000001 1355662908
2 000001
3 000001
4 000002 1355662905
5 000002
职工编码 工单号 完成时间毫秒值
1 000001 1355662908
1 000001 1355662907
1 000001 1355662906
1 000001 1355662905
1 000001 1355662904
1 000002 1355662908
1 000002 1355662907
1 000002 1355662906
1 000002 1355662905
1 000002 1355662904
2
2
2 怎么写个sql,可以展示如下格式的数据
职工编码 工单号 完成时间毫秒值
1 000001 1355662908
1 000001
1 000001
1 000001
1 000001
1 000002 1355662908
1 000002
1 000002
1 000002
1 000002
2
2
2 我现在想把职工编码和工单号都分组,然后取每个小组里的最大值。
select t1.bm "职工编码",t1.dh "工单号",
decode(t1.s,ms,ms,null) "完成时间毫秒值"
from table1 t1,
(select bm,dh,max(s) ms from table1 group by gm,dh) t2
where t1.dh = t2.dh and t1.bm = t2.bm