スレッド表示 | フラット表示〕 全トピック 920 件中 33 番目 次≫ ≪前

MySQLのGROUP BYについて

created: 2008-12-06 18:27 | modified: 2008-12-06 19:06 | reply: 1

[4258] MySQLのGROUP BYについて

user: volks | created: 2008-12-06 18:27
お世話になります、volksです。
MySQLの話になるのですが、質問させてください。

アクセスログのランキングを表示するページを検討しているのですが、

まず、テーブル作成して、

create table access ( 

id int primary key not null auto_increment,
date timestamp,
url varchar(255),
user_id varchar(255)

)


このテーブルからトータルのランキングデータを取得するのであれば、

SELECT *, COUNT(id) as count FROM access GROUP BY url ORDER BY count DESC;

とSQLを発行すれば私の希望通りのデータを1回で取得できるのですが、

次に、このテーブルにある「user_id」カラムの値を判断して
ユニークユーザのランキングデータを取得したいとなった場合に、
どういうSQLを書けばよいのか分かりません。

全レコードを取得してから、PHPで処理するには少し負担が心配でして、
GROUP BY に条件を付け足すことで、よい方法があったりするのでしょうか?

宜しくお願い致します。
reply: 4259 返信 編集 削除

[4259] 自己レスです。

user: volks | created: 2008-12-06 19:06
すいません、自己レスです。

今調べていると重複を除外するのに、DISTINCT を使用すると良いと
いうことで、試しに、

SELECT *, COUNT(DISTINCT user_id) as count FROM access GROUP BY url ORDER BY count DESC

とSQLを投げてみると、正しい集計結果が返ってきました。
申し訳ありません、お騒がせしましたが解決済みでお願いします。

もし、間違い等ありましたらつっこみお願いします。
有難うございました。
Parent: 4258  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 33 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑