首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL中的乘法聚合运算符

SQL中的乘法聚合运算符
EN

Stack Overflow用户
提问于 2011-03-24 15:47:02
回答 6查看 40.8K关注 0票数 34

在SQL中有聚合运算符,如AVG、SUM、COUNT。为什么它没有乘法运算符?"MUL“之类的

我想知道,它是否存在于Oracle,MSSQL,MySQL?如果不是,是否有解决方法可以解决此问题?

EN

回答 6

Stack Overflow用户

发布于 2011-03-24 15:52:30

不能,但您可以使用数学:)

如果yourColumn总是大于零:

代码语言:javascript
运行
复制
select EXP(SUM(LOG(yourColumn))) As ColumnProduct from yourTable
票数 26
EN

Stack Overflow用户

发布于 2011-03-24 16:15:13

我发现Oracle的答案仍然缺失,所以它是这样的:

代码语言:javascript
运行
复制
SQL> with yourTable as
  2  ( select 1 yourColumn from dual union all
  3    select 2 from dual union all
  4    select 4 from dual union all
  5    select 8 from dual
  6  )
  7  select EXP(SUM(LN(yourColumn))) As ColumnProduct from yourTable
  8  /

COLUMNPRODUCT
-------------
           64

1 row selected.

致以敬意,

罗伯。

票数 7
EN

Stack Overflow用户

发布于 2011-03-24 16:07:53

使用PostgreSQL,您可以创建自己的聚合函数,请参见http://www.postgresql.org/docs/8.2/interactive/sql-createaggregate.html

要在MySQL上创建聚合函数,需要构建一个.so (linux)或.dll (windows)文件。这里显示了一个示例:http://www.codeproject.com/KB/database/mygroupconcat.aspx

我对mssql和oracle不太确定,但我打赌他们也有创建自定义聚合的选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5416169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档