使用最大谓词选择分组依据

时间:2019-10-07 23:40:32

标签: sql sql-server

我经常必须进行如下查询:

select    col1, max(id)
from      Table
where     col2 = 'value'
and       col3 = (    select    max(col3)
                      from      Table
                      where     col2 = 'value'
                 )
group by col1

还有其他避免子查询和临时表的方法吗?基本上,我需要在所有具有特定最大值的行上使用group by。假设使用了所有正确的索引。

1 个答案:

答案 0 :(得分:1)

您可以使用OLAP函数来实现此目的。我想说这种解决方案略胜一筹,因为您的谓词在主查询和子查询之间不会重复,因此您不会违反DRY

.toString(Utf8)