今天遇到的SQL需求是:找出資料表中特定的portfolio_id 的英文、中文版資料各自的最大資料日期。資料表規格如(圖一)。首先,我們先排出所有的portfolio_id在table的英文、中文版資料各自的最大資料日期,SQL statement範例如下:

select portfolio_id,lang, max(data_date) as data_date from vf_top_holding group by portfolio_id,lang;

產生的資料結果將是資料表(table)裡所有的portfolio_id的全部資料(例如:36個月, 從2006/09至2009/09)的最大值搜尋,分別列出每個portfolio_id英文版(ENG)、中文版(TWA)的最大值。因此很可能遇到某個portfolio_id的英文版最大資料日期為:2009/08/31;中文版最大資料日期為:2009/06/30。查詢結果範如(圖二)。接下來我們加入 HAVING 子句查詢特定portfolio_id的英文版(ENG)、中文版(TWA)在資料表(table)的最大資料日期,,SQL statement範例如下:

select lang, max(data_date) as data_date from vf_top_holding group by portfolio_id,lang having portfolio_id ='60012002';

使用HAVING子句就能指定只傳回整個資料表(table)裡portfolio_id = '60012002'的資料,再用group by 分成英文版(ENG)、中文版(TWA),最後找出這2個語言版本的最大資料日期,如(圖三)

文章標籤
全站熱搜
創作者介紹
創作者 shenyii 的頭像
shenyii

♕輕熟小兔♕ 暖男熊

shenyii 發表在 痞客邦 留言(0) 人氣(16,019)