概要

「YYYYMM」形式の年月をコマンドライン引数として受け取り、テーブルuser_daily_reportsを集計し、CSV形式で出力を行うスクリプトcreate_csv_report.phpを作成する。

  • date_ym, providerでグルーピングを行う。
  • 取得項目はdate_ym,provider、およびtotal_count, registered_count, unregistered_countの各サマリ
  • CSVファイルの一行目はヘッダ行として、以下の文字列を固定で出力する。

    • 年月
    • プロバイダ
    • 総数
    • 登録数
    • 退会数
  • 集計結果はdata/ フォルダ以下にreport_{集計年月YYYYMM}.csvとしてファイル出力を行う。

フォルダ構成

作業フォルダ
/home/cfguest01

create_csv_report.php ・・・ スクリプト本体
data/ ・・・格納フォルダ

サーバー環境

ホスト名:dev.campfirejp.com
phpパス:/usr/local/bin/php
phpバージョン:PHP 5.4.12 (cli) (built: Mar 13 2013 18:38:34)

MySQLパス:/usr/local/bin/mysql
MySQLバージョン:Server version: 5.5.24-log Source distribution(同一ホストで稼動)

ログインユーザー:cfguest01
SSHキー:実施時に配布

データベース環境

ユーザー名:report
パスワード:report
データベース名:report
ポート:3306

テーブル定義

user_daily_reports

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | int(11)      | NO   | PRI | NULL    | auto_increment |
| provider           | varchar(16)  | NO   |     | NULL    |                |
| date_ym            | mediumint(9) | NO   |     | NULL    |                |
| date_d             | tinyint(4)   | NO   |     | NULL    |                |
| date               | date         | NO   |     | NULL    |                |
| total_count        | int(11)      | NO   |     | NULL    |                |
| registered_count   | int(11)      | NO   |     | NULL    |                |
| unregistered_count | int(11)      | NO   |     | NULL    |                |
| created            | datetime     | YES  |     | NULL    |                |
| updated            | datetime     | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
1