开发者

MySQL divide two series by eachother

I have several data series in a MySQL table.

The fields are Series, Date, Value. 开发者_StackOverflow中文版 Is there a way for me to select, for two distinct Series, all the dates for which the series overlap and then for each date, the quotient of the value from series one and series two.

Example:

Series Date Value

Dogs 2004 10

Dogs 2005 12

Dogs 2006 14

Dogs 2007 16

Cats 2004 6

Cats 2005 6

Cats 2006 7

Cats 2007 4

I would like something like SELECT Cats/Dogs and get the following result

Date Value

2004 .6

2005 .5

2006 .5

2007 .25


You can achieve this with a self-join on your table.

SELECT cats.Series, cats.value / dogs.value 
FROM animals cats
INNER JOIN animals dogs 
        ON dogs.Date = cats.Date
WHERE cats.Series = "Cats"
AND dogs.Series = "Dogs"

It would be preferable for performance to have an index on Date, and a key on (Series,Date) would be ideal.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜