我想选择FA_Event =“Watch List Qualified”和FA_ID = MAX(FA_ID)的符号。 这意味着:在该数据库中,符号“A”的MAX(FA_ID)= 1,符号“B”的MAX(FA_ID)= 3。我必须检查这个最大值(1,3)事件=“观察列表是否合格”。由于FA_ID = 3中没有“监视列表合格”,因此答案将仅为“A”。
FA_ID FA_SYmbol FA_Event FA_DATE FA_COmment
1 A NULL NULL NULL
1 A Watch List Qualified 05-Mar-12 NULL
1 B NULL NULL NULL
1 B Watch List Qualified 05-Mar-12 NULL
2 B NULL NULL NULL
2 B e7 NULL NULL
2 B e9 NULL NULL
2 B Watch List Qualified 05-Mar-12 NULL
3 B NULL NULL NULL
3 B e2 NULL NULL
答案 0 :(得分:1)
看起来这就是你要找的东西:
http://sqlfiddle.com/#!3/5ff70/9
select * from
table1
inner join (
select fa_symbol, max(fa_id) as maxid
from table1
group by fa_symbol
) maxes on
table1.fa_symbol = maxes.fa_symbol AND
table1.fa_id = maxes.maxid
where
fa_event = 'Watch List Qualified'
答案 1 :(得分:0)
假设您的RDBMS支持带MAX函数的OVER子句,请尝试:
select * from
(select m.*, max(FA_ID) over (partition by FA_SYmbol) max_ID
from myTable m) sq
where FA_ID = max_ID and
FA_Event = 'Watch List Qualified'