PRODUCT
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
PRODUCT()
聚合函数是一个聚合函数,它计算组中所有值的乘积,类似于 SUM 函数计算总和的方式。
SELECT product(ID) FROM BOOK
create.select(product(BOOK.ID)) .from(BOOK)
产生
+---------+ | product | +---------+ | 24 | +---------+
方言支持
此示例使用 jOOQ
product(BOOK.ID)
翻译成以下特定方言的表达式
访问
(SWITCH(sum( SWITCH(BOOK.ID = 0, 1) ) > 0, 0, (sum( SWITCH(BOOK.ID < 0, -1) ) MOD 2) < 0, -1, TRUE, 1) * exp(sum(log(abs(iif(BOOK.ID = 0, NULL, BOOK.ID))))))
ASE
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0 THEN 0 WHEN (sum( CASE WHEN BOOK.ID < 0 THEN -1 END ) % 2) < 0 THEN -1 ELSE 1 END * exp(sum(log(abs(nullif(BOOK.ID, 0))))))
Aurora MySQL, Aurora Postgres, BigQuery, ClickHouse, DB2, Firebird, H2, HSQLDB, Hana, MariaDB, MemSQL, MySQL, Oracle, Postgres, Snowflake, Sybase, Trino, Vertica, YugabyteDB
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0 THEN 0 WHEN mod( sum( CASE WHEN BOOK.ID < 0 THEN -1 END ), 2 ) < 0 THEN -1 ELSE 1 END * exp(sum(ln(abs(nullif(BOOK.ID, 0))))))
CockroachDB
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0E0 THEN 0 WHEN mod( sum( CASE WHEN BOOK.ID < 0 THEN -1 END ), 2 ) < 0E0 THEN -1 ELSE 1 END * exp(sum(ln(CAST(abs(nullif(BOOK.ID, 0)) AS numeric)))))
Databricks, Redshift
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0 THEN 0 WHEN (sum( CASE WHEN BOOK.ID < 0 THEN -1 END ) % 2) < 0 THEN -1 ELSE 1 END * exp(sum(ln(abs(nullif(BOOK.ID, 0))))))
Derby
(CASE WHEN sum( CASE WHEN BOOK.ID = 0 THEN 1 END ) > 0 THEN 0 WHEN mod( sum( CASE WHEN BOOK.ID < 0 THEN -1 END ), 2 ) < 0 THEN -1 ELSE 1 END * exp(sum(ln(abs(nullif(BOOK.ID, 0))))))
DuckDB
product(BOOK.ID)
Exasol
mul(BOOK.ID)
Informix
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0 THEN 0 WHEN mod( sum( CASE WHEN BOOK.ID < 0 THEN -1 END ), 2 ) < 0 THEN -1 ELSE 1 END * exp(sum(logn(abs(nullif(BOOK.ID, 0))))))
SQLDataWarehouse, SQLServer
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > CAST(0 AS decimal(1)) THEN 0 WHEN (sum( CASE WHEN BOOK.ID < 0 THEN -1 END ) % 2) < CAST(0 AS decimal(1)) THEN -1 ELSE 1 END * exp(sum(log(abs(nullif(BOOK.ID, 0))))))
Teradata
(CASE WHEN sum( CASE BOOK.ID WHEN 0 THEN 1 END ) > 0 THEN 0 WHEN (sum( CASE WHEN BOOK.ID < 0 THEN -1 END ) MOD 2) < 0 THEN -1 ELSE 1 END * exp(sum(ln(abs(nullif(BOOK.ID, 0))))))
SQLite
/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!