質問: メディアを作っていて、前日のランキングのような枠を設けたいと思っているのですが、前日のPVを取得する方法がわかりません。 今はViewsというカラムがあり、ここにはこれまで全てのViewが入っています。これをうまく使って前日のPVを取得できないかと思っているのですが、いろいろ検索してもそれらしいものを見つけることができず、こちらで質問させていただいています。 もしかしたら、自分がやろうと思っていることはそもそもできないのかもしれませんが、分かる方がいましたら、教えていただけると嬉しいです。 よろしくお願いいたします。 《追記》 1.DBMSはMySQL 2.テーブル名はBlogs 3.Viewsカラムはint(11)で数字が格納 4.キーはid 5.取り出したい情報は前日のみのページビュー (いつページが見られたかなどのtimestampなどはありません。)
回答: 質問に抽象的な部分が多いので何とも言えませんが... 下記の前提で進めてみます。 1使っているDBMSはMySQL 2テーブル名はPreViewsとする。 2ViewsカラムにはDate型の値が入っており、そのページが見られた日付が格納されている。 3キーはページ名でPagesというカラムが存在している 4取りたい情報は、Viewsカラムに昨日の日付が入っているレコードの件数。 これをページ毎に算出したい。 ``` Select count(*) from PreViews where datediff(Views, curdate()) = -1 Group By Pages ``` ※SQLに関する質問の際には最低でもDBMSの種類と登録されているデータと、アウトプットのイメージを明確に書いた方が、回答を得られやすいと思います。