MIN_BY

min_by(expr1, expr2) [FILTER (WHERE condition)]

功能描述

MIN_BY
MIN_BY
函数用于从一组数据中找出与
expr2
expr2
中最小值相关联的
expr1
expr1
的值。该函数在处理成对的数据时非常有用,可以帮助你快速找到与特定条件相关的最佳匹配项。

参数说明

  • expr1
    expr1
    :任何数据类型。这是你希望根据
    expr2
    expr2
    的最小值返回的值。
  • expr2
    expr2
    :可比较的数据类型,包括数值类型(如
    TINYINT
    TINYINT
    、
    SMALLINT
    SMALLINT
    、
    INT
    INT
    、
    BIGINT
    BIGINT
    、
    FLOAT
    FLOAT
    、
    DOUBLE
    DOUBLE
    、
    DECIMAL
    DECIMAL
    ),时间类型(如
    DATE
    DATE
    、
    TIMESTAMP
    TIMESTAMP
    ),字符串类型(如
    CHAR
    CHAR
    、
    VARCHAR
    VARCHAR
    、
    STRING
    STRING
    )以及二进制类型(如
    BINARY
    BINARY
    )。

返回结果

  • 返回结果的类型与
    expr1
    expr1
    的类型相匹配。
  • 如果
    expr2
    expr2
    中的所有值均为
    NULL
    NULL
    ,则返回结果也为
    NULL
    NULL
    。

使用示例

  1. 数值类型的示例:

SELECT min_by(num1, num2) FROM VALUES ((1, 10)), ((2, 20)), ((3, 5)), ((4, 30)) AS tab(num1, num2); +--------------------+ | min_by(num1, num2) | +--------------------+ | 3 | +--------------------+

在这个示例中,我们可以看到

num2
num2
的最小值是 5,与它相关联的
num1
num1
的值是 3。

  1. 时间类型的示例:

SELECT min_by(date1, date2) FROM VALUES (('2022-01-01', '2023-01-01')), (('2022-02-01', '2022-12-31')), (('2022-03-01', '2022-01-01')) AS tab(date1, date2); +----------------------+ | min_by(date1, date2) | +----------------------+ | 2022-03-01 | +----------------------+

在这个示例中,我们可以看到

date2
date2
的最小值是 '2022-01-01',与它相关联的
date1
date1
的值是 '2022-03-01'。

  1. 字符串类型的示例:

SELECT min_by(str1, str2) FROM VALUES (('apple', 'A')), (('banana', 'B')), (('cherry', 'C')) AS tab(str1, str2); +--------------------+ | min_by(str1, str2) | +--------------------+ | apple | +--------------------+

在这个示例中,我们可以看到

str2
str2
的最小值是 'A',与它相关联的
str1
str1
的值是 'apple'。

  1. 使用 FILTER 子句条件性地查找关联值:

SELECT min_by(num1, num2) FILTER (WHERE num2 > 10) FROM VALUES ((1, 10)), ((2, 20)), ((3, 5)), ((4, 30)) AS tab(num1, num2); +------------------------------------------------+ | min_by(num1, num2) FILTER (WHERE (num2 > 10)) | +------------------------------------------------+ | 2 | +------------------------------------------------+

注意事项

  • 请确保
    expr1
    expr1
    和
    expr2
    expr2
    的数据类型兼容,否则可能导致函数执行失败。
  • 如果
    expr2
    expr2
    中的所有值均为
    NULL
    NULL
    ,函数将返回
    NULL
    NULL
    。
  • MIN_BY
    MIN_BY
    函数适用于成对数据的比较和筛选,但不适用于单独的数据项。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询