みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLのSQLについて

テーブル名:table
------------------------------------
初回アクセス,日付,名前,顧客ID,URL
Y,2017/01/01,Aさん,001,http://aaa.jp
NULL,2017/01/01,Aさん,001,http://aaa.jp/test.php
NULL,2017/01/01,Aさん,001,http://aaa.jp/blog/

Y,2017/01/02,Bさん,002,http://aaa.jp
NULL,2017/01/02,Bさん,002,http://aaa.jp/test.php
NULL,2017/01/02,Bさん,002,http://aaa.jp
NULL,2017/01/02,Bさん,002,http://aaa.jp/blog/

Y,2017/01/03,Cさん,003,http://aaa.jp/test.php
NULL,2017/01/03,Cさん,003,http://aaa.jp
------------------------------------

上記の様なテーブルを作りアクセスデータを蓄積しています。
これらを1ページ目のランキング、2ページ目のランキング、3ページ目のランキングとつくりたいです。

例えば、

------------------------------------
SQL
------------------------------------
SELECT
`table`.`URL`,
COUNT( `table`.`URL`) AS `count`
FROM `table`
WHERE `table`.`初回アクセス` = 'Y'
GROUP BY `table`.`URL`;

------------------------------------
結果
------------------------------------
URL,count
http://aaa.jp,2
http://aaa.jp/test.php,1

1ページ目のランキングは上記SQLで作れるのですが、2ページ目以降のランキングの作り方が分かりません。
何か良い方法等ありませんか?

投稿日時 - 2017-04-13 06:44:57

QNo.9316956

すぐに回答ほしいです

質問者が選んだベストアンサー

そのデータにはアクセスした日付しか無く、アクセスが時系列で追えないので2ページ目の判断は難しいですね。
時間を持つか、アクセス順を示すシリアルナンバーを割り当てるなどしましょう。

投稿日時 - 2017-04-13 11:06:13

補足

このサンプルには日付だけですが、実際には時間もAUTO_INCREMENTもあります。
その場合どの様にすればよいでしょうか?

投稿日時 - 2017-04-13 12:47:54

お礼

アクセス順を示すシリアルナンバーを割り当てる、方法で解決しました!
ありがとうございます。

投稿日時 - 2017-04-14 00:01:14

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問