2010-01-05 3 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

Просьба привести примеры и ожидаемый результат –

ответ

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) будет идеальным.