table1

月,日,ページURL

というアクセスログがあります。

これから「月+日+ページ名」別のカウントを取得するには
どういうSQLにすれば良いでしょうか。
(MySQL4.xです)

下記の様に取得したいと考えています。

月、日、ページ名、カウント
01、01、pageA、123
01、01、pageB、123
01、01、pageC、123
01、02、pageA、123
01、02、pageB、123
01、02、pageC、123

また、一般的にページ毎のアクセス数を記録したい場合は、
どのようなテーブルにするのが一般的か教えてください。
OSやブラウザ、リンク元などの情報は不要です。
年月日毎のページ毎のカウントを知る事ができる様にと考えています。
記録数は数ヶ月100万件程度を考えています。

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:2008/01/25 11:36:59
  • 終了:2008/01/25 16:46:42

ベストアンサー

id:bayan No.1

bayan回答回数100ベストアンサー獲得回数132008/01/25 12:59:25

ポイント60pt

次のようなSQLでどうでしょう。

SELECT month, day, pagename, COUNT(*) AS cnt 
 FROM accesslog
 GROUP BY month, day, pagename;

ここで、

月 month

日 day

ページ名 pagename

カウント cnt

としました。(日本語の列名はあんまり馴染みがないので。。。)


次のようなデータが入っているとします。

mysql> SELECT * FROM accesslog;
+-------+------+----------+
| month | day  | pagename |
+-------+------+----------+
| 01    | 01   | pageA    |
| 01    | 01   | pageA    |
| 01    | 01   | pageB    |
| 01    | 01   | pageC    |
| 01    | 02   | pageA    |
| 01    | 02   | pageB    |
| 01    | 02   | pageB    |
| 01    | 02   | pageB    |
| 01    | 02   | pageB    |
| 01    | 02   | pageC    |
| 01    | 02   | pageC    |
+-------+------+----------+

次のような結果になります。

mysql> SELECT month , day, pagename, COUNT(*) AS cnt
    -> FROM accesslog
    -> GROUP BY month , day, pagename;
+-------+------+----------+-----+
| month | day  | pagename | cnt |
+-------+------+----------+-----+
| 01    | 01   | pageA    |   2 |
| 01    | 01   | pageB    |   1 |
| 01    | 01   | pageC    |   1 |
| 01    | 02   | pageA    |   1 |
| 01    | 02   | pageB    |   4 |
| 01    | 02   | pageC    |   2 |
+-------+------+----------+-----+
id:worldtravel

ありがとうございます。

早速テストしてみます。

終わり次第ご報告致します。

うまく行きました。

ありがとうございました。

2008/01/25 16:46:23
  • id:worldtravel
    質問の「ページURL」と「ページ名」は同じと考えてください。
    入力ミスです。すいません。
  • id:bayan
    > table1

    おっと、テーブル名が提示されていましたね。
    accesslog にしちゃいましたけど読み替えてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません