這裏扔()--Literally我最喜歡的工具是用一個解決方案子選擇決定了最大首先在列表中選擇run_id,然後使用條件AND max run_id選擇所有行。由於該列不是唯一的,因此可以使用GROUP BY
修飾符來排除多個匹配項。
這是一個經典的最小/最大的羣體問題。一些DBMS有更好的解決方案,但下面的解決方案可能適用於大多數系統。
select analysis_date,ptf_id,stat_name,Bps,run_id
from rpt.rm_Report_History
where analysis_date > '20160102' and criteria_Set= 'Daily'
and ptf_id in('10038','10039')
and report_section_group = 'Key_Risk_Figures'
and rm_rcp_param_name = 'Fund'
and stat_class = 'standaloneVaR'
and run_id = (SELECT max(run_id) FROM rpt.rm_Report_History WHERE
analysis_date > '20160102'
and criteria_Set= 'Daily'
and ptf_id in('10038','10039')
and report_section_group = 'Key_Risk_Figures'
and rm_rcp_param_name = 'Fund'
and stat_class = 'standaloneVaR')
GROUP BY run_id
編輯:某些DBMS會要求你按所有選定列:
...
GROUP BY analysis_date,ptf_id,stat_name,Bps,run_id
您可以放置所需的輸出嗎? –
請標記RDMS .. –