匯率儲存,千分之5以內的,按照日期,幣種,匯率,匯率浮動分組。
首先分組,按照日期,幣種,匯率,匯率浮動,然後分組統計(日期,幣種,匯率)= 1的並且,
浮動範圍在千分5以內。
如果有2條匯率,一條記錄大於千分之5,一條記錄小於千分之5,分組統計數目就大於1,就過濾掉。
如果匯率正常的且有多條,然後取max 最大值。
select c.trans_date, c.import_rate , c.settle_currency,c.txn_currency from (
select b.trans_date, max(b.import_rate) import_rate , b.settle_currency,b.txn_currency ,rate_flag,count(*) over (partition by trunc(trans_date),settle_currency,txn_currency) counts from (
select a.trans_date,a.import_rate,a.settle_currency,a.txn_currency , case when to_number(dif) -0.005 >0 then '浮動匯率》0.005' else'浮動匯率正常' end rate_flag
from ( select distinct dtl.inst_code, trunc(dtl.trans_date) trans_date , dtl.import_rate,dtl.settle_currency,txn_currency, exchange_rate calrate
,to_char(abs(dtl.import_rate -exchange_rate )/dtl.import_rate,'99999990.990000') dif
from tablea dtl
where batch_no = 'abc_160314264' and txn_type !='prcs' and txn_type !='prrn') a
) b
group by trans_date ,settle_currency,txn_currency,rate_flag
) cwhere counts=1 and rate_flag='浮動匯率正常'
如何取分組最大值記錄
分組最大值記錄 比如序號 名稱 數量 1 a 20 2 a 10 1 b 20 2 b 40 3 b 10 1 c 20 2 c 40 子查詢 select from 表 where 序號,名稱 in select max 序號 名稱 from 表 group by 名稱 分析函式 select 序...
如何取分組最大值記錄
分組最大值記錄 比如序號 名稱 數量 1 a 20 2 a 10 1 b 20 2 b 40 3 b 10 1 c 20 2 c 40 子查詢 select from 表 where 序號,名稱 in select max 序號 名稱 from 表 group by 名稱 分析函式 select 序...
MySQL SQL分組取最大值的方法
看了很多分組之後獲取最大值的sql部落格,真的是滿心歡喜,一試就涼,還得自食其力。簡單的三個字段,id,rid,online date,目前就是想根據rid進行分組,取online date中的最大值,最開始想的方法就是根據rid進行group by,然後用id進行倒序,來獲取最大值,後來發現gro...