0

Snowflake 有一个名为LEAST的函数,它可以应用于两列,并为每一行返回较低的值。

使用 pypika 构建 SnowflakeQuery 时如何使用该功能?

4

1 回答 1

3

Pypika 允许您定义其默认函数列表中未提供的附加函数。

LEAST在其中定义,可以使用以下形式,镜像pypika.functions.Concat也使用类似的变量参数签名:

class Least(Function):
    def __init__(self, *terms, **kwargs):
        super(Least, self).__init__('LEAST', *terms, **kwargs)

示例用法:

>>> from pypika.functions import Function

>>> class Least(Function):
...     def __init__(self, *terms, **kwargs):
...         super(Least, self).__init__('LEAST', *terms, **kwargs)
... 

>>> q = Query.from_(customers).select(
...     customers.id,
...     Least(3, 2, 1).as_('least_example'),
... )

>>> q
SELECT "id",LEAST(3,2,1) "least_example" FROM "customers"
于 2020-06-03T14:44:32.367 回答