Я имею a table с sales
записи по year
следующим образом:Создание индекса по расчетному значению
id year sales
1 2001 10
2 2002 20
3 2003 30
Я присоединяюсь таблицу к себе для того, чтобы получить sales_difference
от одного года к следующему:
SELECT s1.*, s1.sales - s2.sales AS sales_difference
FROM sales s1, sales s2
WHERE s1.year = s2.year + 1
Этот запрос выполняется довольно медленно, поэтому я хочу создать индекс на year + 1
. По the PostgreSQL docs вы можете создать индексы на такие выражения, как:
CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
Так что я стараюсь делать это:
CREATE INDEX sales_year_plus_one on sales (year + 1);
, который дает мне:
ERROR: syntax error at or near "+"
LINE 1: ...sales_year_plus_one on sales (year + 1);
^
Почему это конкретное выражение не допускается ?
Очень хорошо пятнистый. Как странно, что такая важная часть информации настолько тонко спрятана в небольшой печати документации. – LondonRob