gpt4 book ai didi

sql - 比较组VS分区依据

转载 作者:行者123 更新时间:2023-12-04 19:14:01 28 4
gpt4 key购买 nike

假设一个表CAR和两列CAR_ID (int)VERSION (int)

我想获取每辆车的最高版本。

因此,有两种解决方案(至少):

select car_id, max(version) as max_version 
from car
group by car_id;

或者 :
select car_id, max_version 
from ( select car_id, version
, max(version) over (partition by car_id) as max_version
from car
) max_ver
where max_ver.version = max_ver.max_version

这两个查询的性能相似吗?

最佳答案

是的,可能会影响

第二个查询是内联 View 的一个示例。
这是一种非常有用的方法,可用于执行各种计数类型的报告或与之一起使用任何聚合函数。

Oracle执行子查询,然后将所得行用作FROM子句中的 View 。

在考虑性能时,始终建议使用内联 View ,而不要选择其他子查询类型。

第二个查询将提供所有最大记录,而第一个查询将仅提供一个最大记录。

see here

关于sql - 比较组VS分区依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9328238/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com