前提・実現したいこと
DBから受信したデータを、日付別、グループ別に集計をして
CSVファイルに格納したいのですが、PHPエラーが発生して上手くいきません。
PHP,PostgreSQLにお詳しい方、ご教授頂きたく存じます。
宜しくお願い致します。
DBデータ
データベース名:m_test2 data1 | item ----------------- 2018-09-01 | item1 2018-09-01 | item1 2018-09-01 | item1 2018-09-01 | item2 2018-09-02 | item1 2018-09-02 | item2 2018-09-02 | item2 2018-09-02 | item3
集計後の理想のCSVファイル
CSVファイル:list.csv days | item1 | item2 | item3 2018-09-01 | 3 | 1 | 0 2018-09-02 | 1 | 2 | 1
該当のソースコード
<?php // PostgreSQLに接続 $conn = pg_connect('host=localhost dbname=test user=XXXX password=XXXX'); $query = "COPY (SELECT * FROM crosstab('SELECT data1, item, count(item) FROM m_test GROUP BY data1, item ORDER BY data1, item' ) AS m_test( days timestamp, item1 bigint, item2 bigint, item3 bigint ) TO '/Applications/MAMP/htdocs/web/csv/list.csv' CSV HEADER"; $result = pg_query($conn, $query); ?>
試したこと
「GROUP BY」と「COUNT()」を使用した
日付ごと、アイテムごとの集計までは成功しておりますが、
「crosstab関数」の辺りが上手くいっていないようです。
補足情報(FW/ツールのバージョンなど)
■補足情報
・DBとの連携動作には問題ございません。
・PHPは以下のエラーが発生しております。
■PHPエラー情報
PHP:5.6.3
PostgreSQL: 10.5
MAMP:5.0.1
PHPエラー内容
※エラーが発生している21行目は、「$result = pg_query($conn, $query);」です
PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "TO" LINE 12: ) TO '/Applications/MAMP/htdocs/web/csv/list.csv' CSV HEAD... ^ in /Applications/MAMP/htdocs/web/index.php on line 21
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/25 01:25