如何找到两个相互依赖的列的最大值



我在ERP系统中有一个表,我正试图找到一些有效的方法来进行查询,以从相互依赖的两列中获得最大值。

例如:

<表类>为日期时间tbody><<tr>4877152021-06-0813:35:524877152021-06-1208:59:284877152021-06-1210:06:135723352021-08-0610:23:155723352021-06-0106:42:40

为每个订单排序,然后只选择排名最高的行。

select * from
(
select "order", "date", "time",
row_number() over (partition by "order" order by "date" desc, "time" desc) r
from TestDB.dbo.stockMovements
) t
where r = 1;

,db&lt的在小提琴

您可以使用row_number为每一行分配优先级,然后选择优先级最高的行。

with t as (
select *, Row_Number() over (partition by [order] order by [date] desc, [time] desc) rn
from Tablename
)
select [order], [date], [time]
from t
where rn=1;

您的示例可能是人为的,但是如果这些是您的实际的列名,您应该重新考虑并选择更有意义的列名,而不是与保留关键字相同—这样做是一个有良好文档的反模式,并且强制使用不必要的大括号[]

相关内容

  • 没有找到相关文章

最新更新