我通過year
有a table與sales
記錄創建指標如下:計算值
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