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