【コピペで使える】MySQLで1分毎にデータを集計する方法(アクセスログ等)

今回は備忘録としてMySQLで1分毎のアクセス数を集計するためのSQL文を記載します。

想定しているシステムはアクセスログで集計時に1分毎のアクセス数を出力したいといった場合です。

このときWebアプリケーション(PHP)側でこの処理を行うとかなり動作が重くなってしまいますが、この処理をSQL側で担当できれば処理は飛躍的に軽くなります。
 

検索対象のテーブル構成(pageviews)

  • ・id
  • ・ipaddress
  • ・created

 

SQL文


SELECT 
  from_unixtime(round(unix_timestamp(created) div (1 * 60)) * (1 * 60)) as timekey,
  count(ipaddress) 
FROM
  pageviews
GROUP BY 
  timekey;

これだけの記述で目的の集計結果が得られるのは嬉しいですね。

同一IPアドレスは1とカウントしたいといった場合には、GROUP BYにipaddressを含めるなどして対応もできそうです。
 

投稿者プロフィール

たーさん代表者
東海大学工学部を卒業後、東芝情報システム株式会社(旧グループ会社含む)に入社。半導体(SRAM)の開発チームにて、Unix環境でのPerlを用いた業務自動化プログラムの開発など、エンジニアとしての確かな基礎と緻密な論理的思考力を培う。

その後、東証上場企業である株式会社ザッパラスへ。Web・モバイルの最前線で、数多くのユーザーに愛されるコンテンツ制作業務に従事。ここで「ユーザー目線に立った魅力的なWebコンテンツの企画・制作ノウハウ」を深く学ぶ。

開発・システム側から見た「堅牢なロジック」と、制作・ユーザー側から見た「伝わるコンテンツ」の双方を実務で経験した強みを活かし、フリーランスとして独立。

現在は、ウイングアーク1st株式会社の「データのじかん」運営チームに参画するなど、大手・中小企業のWeb運営・開発パートナーとして活動。完全在宅でありながら、固定IPの完備や厳格なセキュリティポリシーの遵守を徹底し、企業のインフラや本番環境を安全に支える「チームの一員」として高い信頼を得ています。

見た目の美しさはもちろんのこと、内部の構造やWordPressのカスタマイズ、運用・セキュリティまでを見据えた、技術的バックボーンのある高品質なWebサイト・システム制作をワンストップでご提供しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA