sql server 如何筛选如图这张表?

image.png

以towernumber分组,取todaymaxvol的最大值,并且获取最大值对应的后面的日期

注:这个数据是’

SELECT CONVERT(decimal(20,2), LTrim(RTrim(volume))) todaymaxvol,towernumber,time FROM catch_gas WHERE CONVERT(varchar(100), time,20)>='2019-01-01 08:30:59'

 AND CONVERT(varchar(100), time, 20) <='2019-01-31 20:30:59' AND towernumber <>'140807101810(二期)' 

‘获取的结果,需要再次筛选

不是要取第一条,是要取最大值,按towernumber分组取每组中的最大值,顺带取最大值的日期,应该是九条

tangshi998 发布于 2019-2-1 13:41 (编辑于 2019-2-1 14:55)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
wukaihuaLv5初级互助
发布于2019-2-1 14:36
select * from (
select 
    towernumber,todaymaxvol,time,row_number()over(partition by towernumber order by todaymaxvol desc) RN
from(
SELECT CONVERT(decimal(20,2), LTrim(RTrim(volume))) todaymaxvol,towernumber,time FROM catch_gas WHERE CONVERT(varchar(100), time,20)>='2019-01-01 08:30:59'
 AND CONVERT(varchar(100), time, 20) <='2019-01-31 20:30:59' AND towernumber <>'140807101810(二期)' 
 )
 ) where RN=1


  • 2关注人数
  • 359浏览人数
  • 最后回答于:2019-2-1 14:55
    请选择关闭问题的原因
    确定 取消
    返回顶部