以下のようなことをしようと思っていますが、いろいろやってみてもできなかったのでお尋ねします。
ログインのログを集計しています。
テーブルの構成は大まかには
ID logintime
aaa 2004-11-10 10:10:10
bbb 2004-11-10 10:10:11
ccc 2004-11-10 10:10:12
aaa 2004-11-10 10:10:13
aaa 2004-11-10 10:10:14
という構成です。
これが1日ごとに、
log_20041108
log_20041109
log_20041110
log_20041111
という感じで並んでいます。
それで、やりたいことは「ユニークログイン数のカウント」です。
1日であれば
> select count(distinct id) from log_20041111;
などでできると思うのですが、
(上記の例で行くとこれは3になりますね。)
これをイメージ的には
> select count(distinct id) from log_20041111,log_20041110,log_20041109;
のように、複数のテーブルでやりたいのです。
ID logintime
aaa 2004-11-11 10:10:10
bbb 2004-11-11 10:10:11
ccc 2004-11-11 10:10:12
aaa 2004-11-11 10:10:13
aaa 2004-11-11 10:10:14
ID logintime
aaa 2004-11-10 10:10:10
bbb 2004-11-10 10:10:11
ddd 2004-11-10 10:10:12
aaa 2004-11-10 10:10:13
ID logintime
aaa 2004-11-09 10:10:10
bbb 2004-11-09 10:10:11
eee 2004-11-09 10:10:12
これに対して、「5」という結果が取り出したいのです。
(aaa, bbb, ccc, ddd, eeeの5人)
何かいい方法がないでしょうか??
宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
探索の効率を考えてログを分割して保存する事は結構良くやります。
ログを分割したテーブルで保存する場合、私は定石的にマージテーブルを使っています。Version 3.23.58で使ったことは、私自身は無いのですが、マニュアルでは3.23.25以上なら使えるように書いてあるので、充分使えるのではないかと思います。
使い方を解説されたマニュアルがあるので、ご一読ください。運用していく上でマージテーブルは便利ですよ。
参考URL:http://dev.mysql.com/doc/mysql/ja/MERGE.html
No.3
- 回答日時:
足し算
select
count(distinct A.id)
+ count(distinct B.id)
+ count(distinct C.id)
from
log_20041111 A,
log_20041111 B,
log_20041111 C
No.2
- 回答日時:
MySQLは使ったことがないのですが、view、union、インラインビューなどが使えないのでちょっと無理だと思います。
なんらかのプログラムを組んでください。
なぜテーブルを日にちごとに分けてしまうのか気になるところです。
No.1
- 回答日時:
テーブル名がとれるんであれば、以下のイメージは
> select count(distinct id) from log_20041111,log_20041110,log_20041109;
select count(distinct id) from
(select id from log_20041111
union
select id from log_20041110
union
select id from log_20041109;
)
でできると思います。
ただ、日々のログの量やテーブル数によっては速度は
期待できないかもしれません
この回答への補足
すみません・・・書き忘れていたのですが、
version 3.23.58なのでunionは使えないんですよ・・・。
せっかく答えていただいたのにすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- 数学 微分方程式の積分定数について 5 2023/07/13 08:39
- 数学 複素数についての質問です。 1+iの主値を求める問題で回答が以下のようになっていました。 1+i = 5 2022/07/22 04:04
- 数学 n乗はどうなったのでしょうか 1 2023/01/31 19:26
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- 数学 log底10真数1/75 ただし、 log底10真数2=0.3 log底10真数3=0.5とする 式 2 2022/05/30 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
同一のユーザー、同一商品のと...
-
マイクラPC版のコマンドで効率...
-
テーブル名を省略して「h.id」...
-
副問合せの書き方について
-
複数テーブルのGROUP BY の使い...
-
select文のwhere句に配列を入れ...
-
SQLで残高計算
-
クエリ表示と、ADOで抽出したレ...
-
php+MySQLでレコードが何行目か...
-
select文で特定のIDを抽出しupdate
-
MySQLでのバイナリデータ削除方法
-
sqlで、600行あるテーブルを100...
-
SQL Left Join で重複を排除す...
-
書籍の内容はまともでしょうか?
-
MySQLのint型で001と表示する方...
-
【MySQL】本当に困っているので...
-
SQLサーバから、項目の属性(型...
-
SELECT/別テーブルのレコード...
-
AUTO_INCREMENTのあるテーブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報