再問:得到相同NO對應Q的最後一次變更的DATE

dy15 2005-07-19 01:02:02
table :test
DATE NO Q
2005/07/14 001 5
2005/07/15 001 6
2005/07/16 001 7
2005/07/17 001 7
2005/07/18 001 7
2005/07/17 002 6
2005/07/13 003 3
2005/07/14 003 4
2005/07/15 003 4
2005/07/16 003 4
2005/07/17 003 2
2005/07/18 003 2

要得到相同NO對應Q的最後一次變更的DATE
2005/07/16 001 7
2005/07/17 002 6
2005/07/17 003 2

謝謝
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小李木耳 2005-07-19
  • 打赏
  • 举报
回复
回复人: w_tsinghua() ( ) 信誉:105 2005-07-19 13:21:00 得分: 0


select min(date),no , Q FROM test group by no,q

==>select max(date),no , Q FROM test group by no,q


bzszp 2005-07-19
  • 打赏
  • 举报
回复
前两天不是提过这个问题吗?
还没解决?
沝林 2005-07-19
  • 打赏
  • 举报
回复
SQL> select * from (
2 select to_char(date1,'yyyy/mm/dd') "date",no,q,
3 row_number() over(partition by no order by date1 desc) rn1
4 from (select min(date1) date1,no ,Q FROM test group by no,q)
5 ) where rn1 = 1
6 /

date NO Q RN1
---------- ---------- ---------- ----------
2005/07/16 001 7 1
2005/07/17 002 6 1
2005/07/17 003 2 1
沝林 2005-07-19
  • 打赏
  • 举报
回复
SQL> select * from (
2 select to_char(date1,'yyyy/mm/dd') "date",no,q,
3 row_number() over(partition by no order by date1 desc) rn1
4 from
5 (select t.*,row_number() over(partition by no,q order by date1) rn
6 from test t
7 ) where rn = 1
8 ) where rn1 = 1
9 /

date NO Q RN1
---------- ---------- ---------- ----------
2005/07/16 001 7 1
2005/07/17 002 6 1
2005/07/17 003 2 1
子陌红尘 2005-07-19
  • 打赏
  • 举报
回复
select
min(a.DATE) as DATE,
a.NO,
a.Q
from
test a
where
not exists(select * from test where DATE>=a.DATE and NO=a.NO and Q<>a.Q)
group by
a.NO,a.Q
w_tsinghua 2005-07-19
  • 打赏
  • 举报
回复
select min(date),no , Q FROM test group by no,q

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧