我在sql server中有一个表,每隔15分钟就有一个数据值和时间戳。从2015年1月到2016年6月。每隔96个间隔(间隔15分钟,24小时内96个)有一个数据值,是当天最高的(24小时)。我有另外3列叫做a,b,c。我需要找到每96个间隔集的最大值及其各自的A,B,C值。我尝试使用max和group by但无法获得确切的数字。有人可以帮我这个。
我已经发布了数据外观的快照。所以在这种情况下,你看的是Jan 02,我需要KW的最大值,整个96个区间。更重要的是,我需要相应最大值的a相,b相,c相值。
答案 0 :(得分:0)
我假设你每天都想要最大值。您可以将row_number()
用于此目的:
select t.*
from (select t.*,
row_number() over (partition by cast(timestamp as date)
order by onedatavalue desc
) as seqnum
from t
) t
where seqnum = 1;
答案 1 :(得分:0)
假设您希望每天获得最大值,您可以在子查询中使用Max,如下所示:
select * from DATATABLE as D
where KW = (Select MAX(KW) from DATATABLE
where DAY(KEY_POINT_DTTM_15MIN) = DAY(D.KEY_POINT_DTTM_15MIN))
我猜你正在使用max(),但你忘记了DAY()函数..