
ページ名 | ユーザID
mypage | 2
other | 2
other | 4
mypage | 2
index | -1
index | -1
mypage | 2
other | 3
other | 2
mypage | 2
index | -1
index | 3
上記のテーブルのように、ページ名とユーザIDが多対多のような関係になっている時に、
各ページにアクセスしてきたユニークユーザ数を取得したいと考えております。
上記の例ですと、求めたい答えは下記となります。
mypage:1 アクセスしたユーザは、2だけなので、ユニーク数は1
index:2 アクセスしたユーザは、-1と3なので、ユニーク数は2
other:3 アクセスしたユーザは、2と3と4なので、ユニーク数は3
group byで分けて集計すれば良いと単純に考えたのですが、
selectの対象は、group by の対象で無ければならないみたく、
どのように集計すれば良いのか、とても困っております。
大変申し訳ありませんが、ご教授願えませんでしょうか?
宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
そちらの環境のPostgresのバージョンが分からないですが、
手元の環境ではこんな感じで取れます。
select count(t1.ページ名) , t1.ページ名
from (select ページ名 , ユーザID from テーブル group by ページ名 , ユーザID)as t1
group by t1.ページ名
No.2
- 回答日時:
いま、手元にポスグレがないから確認できないんだけど、
たしか、このSQLが通ったはず。
SELECT ページ名,COUNT(DISTINCT ユーザーID) FROM テーブル
GROUP BY ページ名
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デットロック回避策(autocommit...
-
「テーブルに座って……」という...
-
まるいテーブル 円い 丸い 漢字...
-
SQL*LoaderでCSVから指定した列...
-
下記、問題に対しての解答が以...
-
sqlplusで表示が変なので、出力...
-
MACアドレス見えない
-
処理の途中で停止させ、再開さ...
-
Microsoft Access:クエリのフ...
-
C#で電卓のプログラムを組んで...
-
ACCESSで成績管理
-
update文で改行を入れる
-
「クリップボードにコピーされ...
-
AUTO_INCREMENTの抜け番
-
クリスタルレポートで検索条件...
-
重複クエリを使ったデータ削除
-
男性と2人で飲食店に行きテーブ...
-
お金持ちのテーブル
-
SQL Server management studio ...
-
アクセス2010について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
単純なselectが遅くなるのです...
-
MS Access から PostgreSQL へ...
-
javaでデータベース上のテーブ...
-
2つのテーブルで引き算 postgres
-
Postgresqlのレポート機能について
-
reindex と update のデッドロック
-
Postgresのデータ領域の拡張に...
-
デットロック回避策(autocommit...
-
テーブルにcsvファイルをインポ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
PostgreSQL レコードからアイテ...
-
同一カラムに複数条件指定
-
備品管理のデータベースについて
-
PostgresSQLでテーブル定義の抽...
-
DISTINCTとGROUP BYの違い
おすすめ情報