如何在POSTGRESQL 8.4中透视表

时间:2017-09-12 18:07:09

标签: postgresql

我有以下表格:

|Type | Year | amount |
_______________________
|t1   | 2001 | 40     |
|t1   | 2000 | 50     |
|t2   | 2003 | 30     |
|t2   | 2003 | 20     |
|t3   | 2004 | 10     |

我希望将其显示为:

   | type |2001 |2000 |2003 |2004|
   |______________________________
   | t1   |40   |50   |0    |0   |
   | t2   | 0   |0    | 50  |0   |
   | t3   |0    |0    | 0   |10  | 

我不想硬编码这些年,我需要在POstgresql 8.4中做到这一点,它不支持:

CREATE EXTENSION
IF NOT EXISTS tablefunc;

我之前使用以下代码转移了表:more explanation for the following code is here

 sum(CASE
             WHEN year = 2000 THEN
               total
             ELSE 0
           END)

其中每年total =sum (amount)和我在另一个CTE中计算过它。但是当时这些年已经知道,但是对于上面的表格,我需要循环阅读这些年份并阅读每一年,然后计算sum(amount),并且主表中的年份可能会发生变化。

0 个答案:

没有答案