在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等是原始数据的列标签,对应的值是交叉表中的交汇点的值。