MySQL将两个系列相互分开

时间:2010-01-05 05:45:58

标签: mysql

我在MySQL表中有几个数据系列。

字段是系列,日期,值。有没有办法让我选择两个不同的系列,系列重叠的所有日期,然后是每个日期,系列1和系列2的值的商。

示例:

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

我想要SELECT Cats/Dogs之类的内容并获得以下结果

Date Value
2004 .6
2005 .5
2006 .5
2007 .25

1 个答案:

答案 0 :(得分:2)

您可以通过桌面上的自我加入来实现这一目标。

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"

性能最好是Date上有一个索引,(Series,Date)上的一个键是理想的。