由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 有没有在grouping里面让某个column连乘的函数?
相关主题
如何寫此 SQL 查詢?SQL Server 中如何设置Unique字段.
better solution for cross table query in sql?有关m# sql server text字段类型一问
数据库入门知识之3(关系数据库)二个简单Access问题
请教C++制作数据库的问题有没有PostgreSQL的多表多字段查询利器?
求教长文本录入how to write this sql statement
请教请问mysql 里如何创建超宽表
急! 急!向sybase表中插入数据不好用?我的DBA在生成ORACLE table的时候需要一个一个column看
请问sql server7 中 updatetext的用法,在asp中如何使用MySQL 如此之慢?
相关话题的讨论汇总
话题: log话题: growthrate话题: region话题: nyc话题: boston
进入Database版参与讨论
1 (共1页)
c*******r
发帖数: 3289
1
一个貌似简单的问题,可是我找不到连乘的函数:一个表,有region, year_month,
pct字段,用来记录每个地区每月销售比上月变化百分比。需要的输出是按地区按年计
算每年递增百分比,
select multiply(1+pct)
from table
group by region, year(year_month)
有没有这样一个multiply的函数?
B*****g
发帖数: 34098
2
用LOG

【在 c*******r 的大作中提到】
: 一个貌似简单的问题,可是我找不到连乘的函数:一个表,有region, year_month,
: pct字段,用来记录每个地区每月销售比上月变化百分比。需要的输出是按地区按年计
: 算每年递增百分比,
: select multiply(1+pct)
: from table
: group by region, year(year_month)
: 有没有这样一个multiply的函数?

c*******r
发帖数: 3289
3
就是哦,怎么没想到,祝楼上找到和vivian chow一样美的mm
n****f
发帖数: 905
4
老北太不认真了。 不是 LOG, 是 LAG.
http://www.techonthenet.com/oracle/functions/lag.php

【在 B*****g 的大作中提到】
: 用LOG
B*****g
发帖数: 34098
5
是LOG,LAG太麻烦

【在 n****f 的大作中提到】
: 老北太不认真了。 不是 LOG, 是 LAG.
: http://www.techonthenet.com/oracle/functions/lag.php

c*******r
发帖数: 3289
6
log还是挺方便的,我的中学数学已经还给老师了
z**********8
发帖数: 2049
7
对数函数?求强解。
B*****g
发帖数: 34098
8
10^(SUM(log()))

【在 z**********8 的大作中提到】
: 对数函数?求强解。
z**********8
发帖数: 2049
9
result set
region year ammunt growthrate
boston 2000 100 0
boston 2001 200 50%
boston 2002 250 25%
nyc 2000 50 0
nyc 2001 100 50%
nyc 2002 200 50%
...
growthrate如何计算?请教。 当然是在sql里面。
B*****g
发帖数: 34098
10
一个公司的?

【在 z**********8 的大作中提到】
: result set
: region year ammunt growthrate
: boston 2000 100 0
: boston 2001 200 50%
: boston 2002 250 25%
: nyc 2000 50 0
: nyc 2001 100 50%
: nyc 2002 200 50%
: ...
: growthrate如何计算?请教。 当然是在sql里面。

相关主题
请教SQL Server 中如何设置Unique字段.
急! 急!向sybase表中插入数据不好用?有关m# sql server text字段类型一问
请问sql server7 中 updatetext的用法,在asp中如何使用二个简单Access问题
进入Database版参与讨论
z**********8
发帖数: 2049
11
不是啊。类似还有每年的累加问题
2001 100 100
2002 50 150
2003 70 220
。。。
谢谢

【在 B*****g 的大作中提到】
: 一个公司的?
B*****g
发帖数: 34098
12
原理就是只有叠加。没有叠乘
把要叠乘的值先取log
然后再叠加
最后power(10,叠加值)

【在 z**********8 的大作中提到】
: 不是啊。类似还有每年的累加问题
: 2001 100 100
: 2002 50 150
: 2003 70 220
: 。。。
: 谢谢

z**********8
发帖数: 2049
13
完了,对数函数全还给老师了。依然不懂
我用lag好像还好懂点。估计performance肯定不如log.

【在 B*****g 的大作中提到】
: 原理就是只有叠加。没有叠乘
: 把要叠乘的值先取log
: 然后再叠加
: 最后power(10,叠加值)

c*******r
发帖数: 3289
14

select power(10, sum(log(growth_rate) ) )
group by region, year
because log (x * y) = log(x) + log(y),
(x * y) = 10 ^ (log(x) + log(y))
the idea is to turn multiplication to addition, which can use a sum()
function.

【在 z**********8 的大作中提到】
: 完了,对数函数全还给老师了。依然不懂
: 我用lag好像还好懂点。估计performance肯定不如log.

z**********8
发帖数: 2049
15
再请教,
annual growthrate = power (10, sum(log(growth_rate)))?!
THANKS

【在 c*******r 的大作中提到】
:
: select power(10, sum(log(growth_rate) ) )
: group by region, year
: because log (x * y) = log(x) + log(y),
: (x * y) = 10 ^ (log(x) + log(y))
: the idea is to turn multiplication to addition, which can use a sum()
: function.

z**********8
发帖数: 2049
16
是不是,这是一个PIVOT TABLE的案例,如果把它EXPORT到excel/access,就比较容易
处理了。要作一个pivot chart也不难。(不管是AMOUNT或者GROWTH RATE的比较)
如果,是知道每个月的sale's amount,如何求monthly grwoth rate?in ms sql.
n****f
发帖数: 905
17

我笨, 还是看不懂。 下面 growthrate 的结果, 是如何用 LOG 在 SQL 里面实现?
请受累把 SQL 写全。 谢谢!
region year ammunt growthrate
boston 2000 100 0
boston 2001 200 50%
boston 2002 250 25%
nyc 2000 50 0
nyc 2001 100 50%
nyc 2002 200 50%

【在 B*****g 的大作中提到】
: 是LOG,LAG太麻烦
z**********8
发帖数: 2049
18
我这个例子不用log吧。可能用lag+merge可以对付了。不知道是否还有更好的方法。
要是老板催得急,就直接给它export到excel立马就出来了。呵呵



【在 n****f 的大作中提到】
:
: 我笨, 还是看不懂。 下面 growthrate 的结果, 是如何用 LOG 在 SQL 里面实现?
: 请受累把 SQL 写全。 谢谢!
: region year ammunt growthrate
: boston 2000 100 0
: boston 2001 200 50%
: boston 2002 250 25%
: nyc 2000 50 0
: nyc 2001 100 50%
: nyc 2002 200 50%

B*****g
发帖数: 34098
19
不知道你要怎么算

【在 z**********8 的大作中提到】
: 我这个例子不用log吧。可能用lag+merge可以对付了。不知道是否还有更好的方法。
: 要是老板催得急,就直接给它export到excel立马就出来了。呵呵
:
: ?

z**********8
发帖数: 2049
20
我的办法很土阿。或者就export到excel去,就完全解决了-subtotal,或者pivot
table都可以。
要是在ms sql,
先用lag(amount)把前面和后面的两个amount对位,每次只能一个region, 然后,就用
merge把其它regions,同样处理。这样应该就出来了吧。不过我瞧着也不对。哈哈

【在 B*****g 的大作中提到】
: 不知道你要怎么算
1 (共1页)
进入Database版参与讨论
相关主题
MySQL 如此之慢?求教长文本录入
SQL问题请教: add one more column请教
table的每行数据是以二叉树结构存在硬盘里的吗?急! 急!向sybase表中插入数据不好用?
包子:SQL Server如何将一个字段的内容复制到另外一个字段?请问sql server7 中 updatetext的用法,在asp中如何使用
如何寫此 SQL 查詢?SQL Server 中如何设置Unique字段.
better solution for cross table query in sql?有关m# sql server text字段类型一问
数据库入门知识之3(关系数据库)二个简单Access问题
请教C++制作数据库的问题有没有PostgreSQL的多表多字段查询利器?
相关话题的讨论汇总
话题: log话题: growthrate话题: region话题: nyc话题: boston