pgsql不固定列数的行转列怎么写sql

pgsql不固定列数的行转列怎么写sql
近期遇到一个需求,需要根据物品类型按照日期进行行转列,因为日期不确定,所以行转后的列也是不确定的,这种sql怎么写?
转换前的数据

img

转换后想要的数据

img

用pivot做

这种用高级语言一个循环搞定的事情,就不要折腾sql了

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7660204
  • 除此之外, 这篇博客: pgsql 常用查询汇总(查询数据表字段)中的 6.查询正在执行的sql 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 
    SELECT
    pid,
    	datname,
    	usename,
    	client_addr,
    	application_name,
    	STATE,
    	backend_start,
    	xact_start,
    	xact_stay,
    	query_start,
    	query_stay,
    	REPLACE ( query, chr( 10 ), ' ' ) AS query 
    FROM
    	(
    SELECT
    pid,
    	pgsa.datname AS datname,
    	pgsa.usename AS usename,
    	pgsa.client_addr client_addr,
    	pgsa.application_name AS application_name,
    	pgsa.STATE AS STATE,
    	pgsa.backend_start AS backend_start,
    	pgsa.xact_start AS xact_start,
    	EXTRACT (
    	epoch 
    FROM
    	( now() - pgsa.xact_start )) AS xact_stay,
    	pgsa.query_start AS query_start,
    	EXTRACT (
    	epoch 
    FROM
    	( now() - pgsa.query_start )) AS query_stay,
    	pgsa.query AS query 
    FROM
    	pg_stat_activity AS pgsa 
    WHERE
    	pgsa.STATE != 'idle' 
    	AND pgsa.STATE != 'idle in transaction' 
    	AND pgsa.STATE != 'idle in transaction (aborted)' 
    	) idleconnections 
    ORDER BY
    	query_stay DESC 
    	LIMIT 50;