删除每个人的最后一个条目

时间:2012-12-05 19:48:47

标签: mysql sql sybase

我的数据库包含一个大约每月一次的条目,由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 个答案:

答案 0 :(得分: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)