函数是MAX_BY()
确定性的。如果我使用MAX_()
两个不同的列都取决于第三个,我会得到相同的行结果吗?
presto 文档没有提到这一点 。这个关于 mysql 的文档提到它不是,所以我不确定在哪里可以找到这个信息。
我用以下方法快速测试:
WITH my_table(id, arr, something) AS (
VALUES
(1, ARRAY['one'], 0.0),
(2, ARRAY['two'], 0.0),
(3, ARRAY['three'], 0.0),
(4, ARRAY['four'], 0.0),
(5, ARRAY['five'], 0.0),
(6, ARRAY[''], 0.0)
)
SELECT
MAX_BY(id,something),
MAX_BY(arr,something)
FROM my_table
它返回了第一行,所以它不会让人觉得随意,但也不能证明事情。
有谁可以帮忙吗?
有一个相关的问题是从单个返回多个列,MAX_BY()
所以我认为我需要使用该解决方案来保证选择同一行的属性:
max_by with multiple return columns