2017-08-10 36 views
0

您好我需要找到一种方法找到的平均数据集时,有多个值,但根据最近期的从最近期的数据发现平均在有多个

Table 1 
ColumnA ColumnB ColumnC 
    A  3   07/21/2017 
    A  2   08/08/2017 
    B  1   07/22/2017 

计算averae考虑一个特定的值ColumnB

它应该2从A,1应该是(2 + 1)/ 2 = 1.5而不是(3 + 2 + 1)/ 3 = 2。该标准是基于最近columnA

的每个类别的最时间戳

回答

1

我会用row_number()

select avg(columnB * 1.0) 
from (select t.*, 
       row_number() over (partition by columnA order by columnC desc) as seqnum 
     from t 
    ) t 
where seqnum = 1;