在PostgreSQL中,要執行Crosstab查詢,需要使用crosstab()
函數。其基本語法如下:
SELECT * FROM crosstab(
'SELECT category, subcategory, value FROM your_table ORDER BY 1,2',
'SELECT DISTINCT subcategory FROM your_table ORDER BY 1'
) AS ct(category text, subcategory1 text, subcategory2 text, ..., subcategoryN text);
這里your_table
是要查詢的數據表,category
和subcategory
是數據表中的字段,value
是要進行交叉表轉換的值。在crosstab()
函數中,第一個參數是執行SQL查詢獲取原始數據的語句,第二個參數是執行SQL查詢獲取交叉表列名的語句。最后返回的結果是一個交叉表,其中category
是原始數據的行標簽,subcategory1
、subcategory2
等是原始數據的列標簽,對應的值是交叉表中的交匯點的值。