2010-01-05 42 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)密鑰將是理想的。