在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
等是原始数据的列标签,对应的值是交叉表中的交汇点的值。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:PostgreSQL中Crosstab查询的最佳实践是什么