如何对关联子查询的结果使用MAX()函数获取最大值?
获取查询结果集中的最大值
你可以通过两种方式实现获取结果集的最大值:
方法一:嵌套子查询聚合
将原查询作为子查询,在外层使用MAX()函数直接计算最大值:
SELECT MAX(length_val) AS max_length FROM ( SELECT (SELECT LENGTH("PackForm") FROM "schema"."T 2" WHERE "ID-PrsPack_fkey" = "ID-PrsPack") AS length_val FROM "schema"."T 1" WHERE "ID_fkey" = 116 ) AS subquery;
方法二:改写为JOIN关联查询(推荐)
通过JOIN关联两张表后直接聚合,这种方式通常性能更优:
SELECT MAX(LENGTH(t2."PackForm")) AS max_length FROM "schema"."T 1" t1 JOIN "schema"."T 2" t2 ON t2."ID-PrsPack_fkey" = t1."ID-PrsPack" WHERE t1."ID_fkey" = 116;
两种方法都能直接返回你需要的最大值19。
内容的提问来源于stack exchange,提问作者StOMicha
相关产品推荐
相关产品推荐

