2010-01-05 41 views
1

我在MySQL表中有几个数据系列。MySQL由两个系列划分两个系列

这些字段是系列,日期,值。对于两种不同的系列,我有没有办法选择系列重叠的所有日期,然后针对每个日期选择系列一和系列二中的值的商数。

例子:

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

请提供示例和预期输出 – 2010-01-05 06:04:20

回答

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)密钥将是理想的。