用分析函数row_number来给分组内的记录编号,然后取编号值为1的记录即可。
select sfrom (
select v, row_number() over (partition by b order by c desc) as order_num
from #b v
) s
where sorder_num = 1
有几种方式可以选择
(1)按照日期和d/c的倒叙排列,然后利用rownum取第一行,具体写法要测试
(2)子查询,先利用max(b)找到日期最大值,然后在等于日期最大值的情况下,找d/c的最大值。
(3)根据插入规律找日期,比如你是今天上午九点插入昨天的日期,那么只要过了9点你就sysdate-1,截取到日期,然后再吵最大值就行了。没过9点就sysdate-2,至于过没过9点,如果你要写过程的的话,价格判断就行。
SQL语句里面对于时间值来说,越晚就越大,就是说2008年比2007年要大
所以要判断最大时间就找最晚的那个时间就好了
或者
下面这种方式也可以的
where 时间= max(select 时间 from 表)
以上就是关于SQL SERVER分组后查询最大日期的ID全部的内容,包括:SQL SERVER分组后查询最大日期的ID、sql取日期最大的情况下 值最大的、SQL where语句 如何判断时间是最大的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)