2012-12-05 91 views
1

我的數據庫包含大約一個人每月一次的條目,由ID標識。日期存儲在標題爲YEAR和WEEK的字段中。我有一個二進制標誌,稱爲BINARY_FLAG。我想在特定年份的每個人中獲取上個星期的二進制標誌。刪除每個人的除最後一項以外的所有內容

我的代碼拉初始數據如下:

select ID, year, week, binary_flag 
from my_table 
where year = 2000 and 
binary_flag = 1 

這將返回所有條目2000年出現的二進制標誌爲1,但是,會有許多的個人的多個條目,如果二進制標誌爲1個星期。除了最後一週,我如何移除所有內容?

回答

1
select * from my_table t1 
join 
(select ID, year, max(week) maxWeek 
from my_table 
where year = 2000 and 
binary_flag = 1 
group by Id,year) t2 
on 
(t1.Id=t2.id) and (t1.year=t2.year) and (t1.week=t2.maxWeek) 
相關問題