分組取最大值統計,過濾

2021-09-02 13:46:16 字數 1113 閱讀 8114

匯率儲存,千分之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...