0

Web サイトへのヒットを記録する MYSQL テーブルがあります (これは必要に応じて変更できます。プロジェクトの「これは実行可能かどうか」段階にあります)。

+----+-----------+---------+----------+------------+
| id | useragent |   url   | loadTime |  unixtime  |
+----+-----------+---------+----------+------------+
|  1 | Chrome    | /       |      300 | 1334354015 |
|  2 | Chrome    | /       |      330 | 1334354020 |
|  3 | Opera     | /about/ |      310 | 1334354100 |
+----+-----------+---------+----------+------------+

私がやりたいことは、毎日のヒット数を数えることと、1 日あたりの loadTime を平均することと、後で行うその他のことです。

ヒット数をカウントするには、サーバーサイド言語を使用して SELECT * を実行し、ループして、1 日の開始から終了までの UNIX 時間で行数をカウントする方法しか知りません。これを行うための適切なSQLの方法は何ですか、またはselect *、ループに固執する必要がありますか?

4

1 に答える 1

2

あなたのテーブル名が訪問であると仮定します。

select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v group by visitDate;

うまく動作するはずです..ページのURLで結果をフィルタリングしたい場合;

select date(FROM_UNIXTIME(unixtime)) as visitDate, url, count(v.id) from visits v group by visitDate, url;

そして、今日の訪問を見たいなら;

select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v where date(now()) = date(FROM_UNIXTIME(unixtime)) group by visitDate;

私はこれらのいずれもテストしていませんが、少し変更が必要になる場合があります。

于 2012-04-14T14:36:35.760 に答える