9
私はピボットテーブルを作成する方法を知っています(下記のコード例を参照してください)が、ピボットテーブルのカラム数が非常に多く、2000を入力したくない場合? - そのリストを生成する方法はありますか? 事前に感謝します。mysqlのピボットテーブル
あなたは常に正確に:-)#!/bin/sh
mysql -BN test > /tmp/$$_tagnames.tmp <<SQL
select distinct tagname from test;
SQL
cat > /tmp/$$_create_table.sql <<EOF
drop table if exists pivot;
create table pivot select
EOF
while read tag; do
echo "max(if(tagname = '$tag', value, null)) AS '$tag'," >> /tmp/$$_create_table.sql
done < /tmp/$$_tagnames.tmp
cat >> /tmp/$$_create_table.sql <<EOF
time
FROM test
GROUP BY time;
select * from pivot;
EOF
mysql -Bt test < /tmp/$$_create_table.sql
rm /tmp/$$_create_table.sql
rm /tmp/$$_tagnames.tmp
データないシェルスクリプトを作成することができます
drop table pivot;
create table pivot SELECT time,
max(if(tagname = 'a', value, null)) AS 'a',
max(if(tagname = 'b', value, null)) AS 'b',
max(if(tagname = 'c', value, null)) AS 'c'
FROM test where tagname in ('a','b','c')
GROUP BY time;
select * from pivot;
を見て〜でこの記事。 http://buysql.com/mysql/14-how-to-automate-pivot-tables.html – GeoGo