复合表达式 - Amazon Redshift

复合表达式

复合表达式是由算术运算符联接的一系列简单表达式。复合表达式中使用的简单表达式必须返回数字值。

语法

expression operator expression | (compound_expression)

参数

expression

计算结果为值的简单表达式。

operator

复合算术表达式可使用下列采用此优先顺序的运算符构造:

  • ( ):用于控制计算顺序的圆括号

  • +、-:正号和负号/运算符

  • ^、|/、||/:乘方、平方根、立方根

  • *、/、%:乘、除和取模运算符

  • @:绝对值

  • +、-:加和减

  • &、|、#、~、<<、>>:逻辑与、逻辑或、逻辑非、左移位、右移位运算符

  • ||:连接

(compound_expression)

复合表达式可以使用圆括号嵌套。

示例

复合表达式的示例包括以下各项。

('SMITH' || 'JONES') sum(x) / y sqrt(256) * avg(column) rank() over (order by qtysold) / 100 (select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)

一些函数还可嵌套在其他函数中。例如,任何标量函数都可嵌套在另一标量函数中。以下示例返回一组数字的绝对值之和:

sum(abs(qtysold))

窗口函数无法用作聚合函数或其他窗口函数的参数。以下表达式将返回错误:

avg(rank() over (order by qtysold))

窗口函数可以包含一个嵌套的聚合函数。以下表达式对值集进行求和,然后为它们排序:

rank() over (order by sum(qtysold))