我作为一名(笨手笨脚/自学成才的)SQL 开发人员已经工作了一年多了,但 T-SQL 中没有 First/Last Aggregate 函数仍然让我感到困惑。这是我必须经常做的事情,我已经尝试了几种解决方法,包括窗口化的 LAST_VALUE() 和 FIRST_VALUE()、子查询、WITH 语句视图,但我觉得必须有一个最好的方法来做到这一点。
大家有什么意见吗?
T-SQL 中真的没有 First/Last 聚合函数吗?
否 - TSQL 中没有此类聚合函数。
FIRST
和 LAST
的问题在于,您需要一种方法来指定进入聚合的行应被视为具有某种顺序。
APPROX_PERCENTILE_CONT
和STRING_AGG
都是TSQL聚合函数,do允许指定订单。
所以是一个集合
FIRST(Foo) WITHIN GROUP (ORDER BY Bar)
可以添加。但还没有。或者可能可以采用 Oracle 方法。我相信是这样的。
MIN(Foo) KEEP(DENSE_RANK FIRST ORDER BY Bar)