我经常必须进行如下查询:
select col1, max(id)
from Table
where col2 = 'value'
and col3 = ( select max(col3)
from Table
where col2 = 'value'
)
group by col1
还有其他避免子查询和临时表的方法吗?基本上,我需要在所有具有特定最大值的行上使用group by
。假设使用了所有正确的索引。
答案 0 :(得分:1)
您可以使用OLAP函数来实现此目的。我想说这种解决方案略胜一筹,因为您的谓词在主查询和子查询之间不会重复,因此您不会违反DRY:
.toString(Utf8)