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
    函数适用于成对数据的比较和筛选,但不适用于单独的数据项。
联系我们
预约咨询
微信咨询
电话咨询