1

私の Postgres クロス集計クエリは次のようになります。

SELECT mthreport.*
FROM crosstab
('SELECT 
to_char(ipstimestamp, ''mon DD HH24h'') As row_name, 
varid::text || log.varid || ''_'' || ips.objectname::text As bucket, 
COUNT(*)::integer As bucketvalue
FROM loggingdb_ips_boolean As log 
INNER JOIN IpsObjects As ips 
ON log.Varid=ips.ObjectId
GROUP BY to_char(ipstimestamp, ''yyyy MM DD HH24h''), row_name, bucket 
ORDER BY to_char(ipstimestamp, ''yyyy MM DD HH24h''), row_name, bucket')
As mthreport(item_name text,
jan3 integer, feb4 integer, mar5 integer)

最後の行に列挙された 3 つの項目 (jan3 integerなど) を補助クエリから取得する方法はありますか? 最後の行を に置き換えようとしましSELECT xyz FROM zyxたが、うまくいきません。

4

1 に答える 1

2

クエリの基本的な形式では、呼び出し元の列名とタイプを詳しく説明する必要がありSELECTます。

crosstabN(text)事前定義されたリターンタイプを使用するバリアントがあります。

完全に自動化するには、個々のクエリを関数にラップして、戻り値の型を事前に定義する必要があります。詳細な例をここに投稿しました。

于 2012-06-18T00:10:13.583 に答える